// export AmericanPerson ; export function PrepareRussians ; var Ru1_turrets , Ru2_turrets , Am1_turrets , i , un , l , SolLevel , EngLevel , MechLevel , DocLevel , x ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
   5: PPUSH
   6: PPUSH
   7: PPUSH
   8: PPUSH
   9: PPUSH
  10: PPUSH
  11: PPUSH
  12: PPUSH
  13: PPUSH
// SolLevel := [ 6 , 6 , 7 ] [ Difficulty ] ;
  14: LD_ADDR_VAR 0 8
  18: PUSH
  19: LD_INT 6
  21: PUSH
  22: LD_INT 6
  24: PUSH
  25: LD_INT 7
  27: PUSH
  28: EMPTY
  29: LIST
  30: LIST
  31: LIST
  32: PUSH
  33: LD_OWVAR 67
  37: ARRAY
  38: ST_TO_ADDR
// EngLevel := [ 5 , 6 , 6 ] [ Difficulty ] ;
  39: LD_ADDR_VAR 0 9
  43: PUSH
  44: LD_INT 5
  46: PUSH
  47: LD_INT 6
  49: PUSH
  50: LD_INT 6
  52: PUSH
  53: EMPTY
  54: LIST
  55: LIST
  56: LIST
  57: PUSH
  58: LD_OWVAR 67
  62: ARRAY
  63: ST_TO_ADDR
// MechLevel := [ 5 , 6 , 7 ] [ Difficulty ] ;
  64: LD_ADDR_VAR 0 10
  68: PUSH
  69: LD_INT 5
  71: PUSH
  72: LD_INT 6
  74: PUSH
  75: LD_INT 7
  77: PUSH
  78: EMPTY
  79: LIST
  80: LIST
  81: LIST
  82: PUSH
  83: LD_OWVAR 67
  87: ARRAY
  88: ST_TO_ADDR
// DocLevel := [ 5 , 5 , 6 ] [ Difficulty ] ;
  89: LD_ADDR_VAR 0 11
  93: PUSH
  94: LD_INT 5
  96: PUSH
  97: LD_INT 5
  99: PUSH
 100: LD_INT 6
 102: PUSH
 103: EMPTY
 104: LIST
 105: LIST
 106: LIST
 107: PUSH
 108: LD_OWVAR 67
 112: ARRAY
 113: ST_TO_ADDR
// Ru1_turrets := FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
 114: LD_ADDR_VAR 0 2
 118: PUSH
 119: LD_INT 22
 121: PUSH
 122: LD_INT 3
 124: PUSH
 125: EMPTY
 126: LIST
 127: LIST
 128: PUSH
 129: LD_INT 30
 131: PUSH
 132: LD_INT 32
 134: PUSH
 135: EMPTY
 136: LIST
 137: LIST
 138: PUSH
 139: EMPTY
 140: LIST
 141: LIST
 142: PPUSH
 143: CALL_OW 69
 147: PUSH
 148: LD_INT 22
 150: PUSH
 151: LD_INT 3
 153: PUSH
 154: EMPTY
 155: LIST
 156: LIST
 157: PUSH
 158: LD_INT 30
 160: PUSH
 161: LD_INT 31
 163: PUSH
 164: EMPTY
 165: LIST
 166: LIST
 167: PUSH
 168: EMPTY
 169: LIST
 170: LIST
 171: PPUSH
 172: CALL_OW 69
 176: ADD
 177: ST_TO_ADDR
// Ru2_turrets := FilterAllUnits ( [ [ f_side , 6 ] , [ f_btype , b_bunker ] ] ) ;
 178: LD_ADDR_VAR 0 3
 182: PUSH
 183: LD_INT 22
 185: PUSH
 186: LD_INT 6
 188: PUSH
 189: EMPTY
 190: LIST
 191: LIST
 192: PUSH
 193: LD_INT 30
 195: PUSH
 196: LD_INT 32
 198: PUSH
 199: EMPTY
 200: LIST
 201: LIST
 202: PUSH
 203: EMPTY
 204: LIST
 205: LIST
 206: PPUSH
 207: CALL_OW 69
 211: ST_TO_ADDR
// x = [ 2 , 3 , 3 ] [ Difficulty ] ;
 212: LD_ADDR_VAR 0 12
 216: PUSH
 217: LD_INT 2
 219: PUSH
 220: LD_INT 3
 222: PUSH
 223: LD_INT 3
 225: PUSH
 226: EMPTY
 227: LIST
 228: LIST
 229: LIST
 230: PUSH
 231: LD_OWVAR 67
 235: ARRAY
 236: ST_TO_ADDR
// hc_importance = 0 ;
 237: LD_ADDR_OWVAR 32
 241: PUSH
 242: LD_INT 0
 244: ST_TO_ADDR
// hc_basic_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) ] ;
 245: LD_ADDR_OWVAR 30
 249: PUSH
 250: LD_INT 0
 252: PPUSH
 253: LD_INT 2
 255: PPUSH
 256: CALL_OW 12
 260: PUSH
 261: LD_INT 0
 263: PPUSH
 264: LD_INT 2
 266: PPUSH
 267: CALL_OW 12
 271: PUSH
 272: LD_INT 0
 274: PPUSH
 275: LD_INT 2
 277: PPUSH
 278: CALL_OW 12
 282: PUSH
 283: LD_INT 0
 285: PPUSH
 286: LD_INT 2
 288: PPUSH
 289: CALL_OW 12
 293: PUSH
 294: EMPTY
 295: LIST
 296: LIST
 297: LIST
 298: LIST
 299: ST_TO_ADDR
// for i in Ru1_Turrets do
 300: LD_ADDR_VAR 0 5
 304: PUSH
 305: LD_VAR 0 2
 309: PUSH
 310: FOR_IN
 311: IFFALSE 490
// begin if IsInUnit ( i ) = 0 then
 313: LD_VAR 0 5
 317: PPUSH
 318: CALL_OW 310
 322: PUSH
 323: LD_INT 0
 325: EQUAL
 326: IFFALSE 488
// begin uc_side = 3 ;
 328: LD_ADDR_OWVAR 20
 332: PUSH
 333: LD_INT 3
 335: ST_TO_ADDR
// uc_nation = 3 ;
 336: LD_ADDR_OWVAR 21
 340: PUSH
 341: LD_INT 3
 343: ST_TO_ADDR
// hc_gallery =  ;
 344: LD_ADDR_OWVAR 33
 348: PUSH
 349: LD_STRING 
 351: ST_TO_ADDR
// hc_name =  ;
 352: LD_ADDR_OWVAR 26
 356: PUSH
 357: LD_STRING 
 359: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 360: LD_ADDR_OWVAR 29
 364: PUSH
 365: LD_INT 9
 367: PPUSH
 368: LD_INT 11
 370: PPUSH
 371: CALL_OW 12
 375: PUSH
 376: LD_INT 10
 378: PPUSH
 379: LD_INT 12
 381: PPUSH
 382: CALL_OW 12
 386: PUSH
 387: EMPTY
 388: LIST
 389: LIST
 390: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 5 ) , Rand ( 2 , 5 ) , Rand ( 0 , 4 ) ] ;
 391: LD_ADDR_OWVAR 31
 395: PUSH
 396: LD_VAR 0 8
 400: PUSH
 401: LD_INT 1
 403: PPUSH
 404: LD_INT 5
 406: PPUSH
 407: CALL_OW 12
 411: PUSH
 412: LD_INT 2
 414: PPUSH
 415: LD_INT 5
 417: PPUSH
 418: CALL_OW 12
 422: PUSH
 423: LD_INT 0
 425: PPUSH
 426: LD_INT 4
 428: PPUSH
 429: CALL_OW 12
 433: PUSH
 434: EMPTY
 435: LIST
 436: LIST
 437: LIST
 438: LIST
 439: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 440: LD_ADDR_OWVAR 27
 444: PUSH
 445: LD_INT 1
 447: PPUSH
 448: LD_INT 2
 450: PPUSH
 451: CALL_OW 12
 455: ST_TO_ADDR
// hc_class = 1 ;
 456: LD_ADDR_OWVAR 28
 460: PUSH
 461: LD_INT 1
 463: ST_TO_ADDR
// un := CreateHuman ;
 464: LD_ADDR_VAR 0 6
 468: PUSH
 469: CALL_OW 44
 473: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 474: LD_VAR 0 6
 478: PPUSH
 479: LD_VAR 0 5
 483: PPUSH
 484: CALL_OW 52
// end ; end ;
 488: GO 310
 490: POP
 491: POP
// uc_side = 6 ;
 492: LD_ADDR_OWVAR 20
 496: PUSH
 497: LD_INT 6
 499: ST_TO_ADDR
// uc_nation = 3 ;
 500: LD_ADDR_OWVAR 21
 504: PUSH
 505: LD_INT 3
 507: ST_TO_ADDR
// hc_gallery =  ;
 508: LD_ADDR_OWVAR 33
 512: PUSH
 513: LD_STRING 
 515: ST_TO_ADDR
// hc_name =  ;
 516: LD_ADDR_OWVAR 26
 520: PUSH
 521: LD_STRING 
 523: ST_TO_ADDR
// for i in Ru2_Turrets do
 524: LD_ADDR_VAR 0 5
 528: PUSH
 529: LD_VAR 0 3
 533: PUSH
 534: FOR_IN
 535: IFFALSE 726
// begin if IsInUnit ( i ) = 0 then
 537: LD_VAR 0 5
 541: PPUSH
 542: CALL_OW 310
 546: PUSH
 547: LD_INT 0
 549: EQUAL
 550: IFFALSE 724
// begin uc_side = 6 ;
 552: LD_ADDR_OWVAR 20
 556: PUSH
 557: LD_INT 6
 559: ST_TO_ADDR
// uc_nation = 3 ;
 560: LD_ADDR_OWVAR 21
 564: PUSH
 565: LD_INT 3
 567: ST_TO_ADDR
// hc_gallery =  ;
 568: LD_ADDR_OWVAR 33
 572: PUSH
 573: LD_STRING 
 575: ST_TO_ADDR
// hc_name =  ;
 576: LD_ADDR_OWVAR 26
 580: PUSH
 581: LD_STRING 
 583: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 584: LD_ADDR_OWVAR 29
 588: PUSH
 589: LD_INT 9
 591: PPUSH
 592: LD_INT 11
 594: PPUSH
 595: CALL_OW 12
 599: PUSH
 600: LD_INT 10
 602: PPUSH
 603: LD_INT 12
 605: PPUSH
 606: CALL_OW 12
 610: PUSH
 611: EMPTY
 612: LIST
 613: LIST
 614: ST_TO_ADDR
// hc_skills = [ SolLevel - Rand ( 0 , 1 ) , Rand ( 1 , 5 ) , Rand ( 2 , 5 ) , Rand ( 0 , 4 ) ] ;
 615: LD_ADDR_OWVAR 31
 619: PUSH
 620: LD_VAR 0 8
 624: PUSH
 625: LD_INT 0
 627: PPUSH
 628: LD_INT 1
 630: PPUSH
 631: CALL_OW 12
 635: MINUS
 636: PUSH
 637: LD_INT 1
 639: PPUSH
 640: LD_INT 5
 642: PPUSH
 643: CALL_OW 12
 647: PUSH
 648: LD_INT 2
 650: PPUSH
 651: LD_INT 5
 653: PPUSH
 654: CALL_OW 12
 658: PUSH
 659: LD_INT 0
 661: PPUSH
 662: LD_INT 4
 664: PPUSH
 665: CALL_OW 12
 669: PUSH
 670: EMPTY
 671: LIST
 672: LIST
 673: LIST
 674: LIST
 675: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 676: LD_ADDR_OWVAR 27
 680: PUSH
 681: LD_INT 1
 683: PPUSH
 684: LD_INT 2
 686: PPUSH
 687: CALL_OW 12
 691: ST_TO_ADDR
// hc_class = 1 ;
 692: LD_ADDR_OWVAR 28
 696: PUSH
 697: LD_INT 1
 699: ST_TO_ADDR
// un := CreateHuman ;
 700: LD_ADDR_VAR 0 6
 704: PUSH
 705: CALL_OW 44
 709: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 710: LD_VAR 0 6
 714: PPUSH
 715: LD_VAR 0 5
 719: PPUSH
 720: CALL_OW 52
// end ; end ;
 724: GO 534
 726: POP
 727: POP
// Am1_turrets := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ;
 728: LD_ADDR_VAR 0 4
 732: PUSH
 733: LD_INT 22
 735: PUSH
 736: LD_INT 1
 738: PUSH
 739: EMPTY
 740: LIST
 741: LIST
 742: PUSH
 743: LD_INT 30
 745: PUSH
 746: LD_INT 32
 748: PUSH
 749: EMPTY
 750: LIST
 751: LIST
 752: PUSH
 753: EMPTY
 754: LIST
 755: LIST
 756: PPUSH
 757: CALL_OW 69
 761: ST_TO_ADDR
// for i in Am1_turrets do
 762: LD_ADDR_VAR 0 5
 766: PUSH
 767: LD_VAR 0 4
 771: PUSH
 772: FOR_IN
 773: IFFALSE 978
// begin if IsInUnit ( i ) = 0 then
 775: LD_VAR 0 5
 779: PPUSH
 780: CALL_OW 310
 784: PUSH
 785: LD_INT 0
 787: EQUAL
 788: IFFALSE 976
// begin uc_side = 1 ;
 790: LD_ADDR_OWVAR 20
 794: PUSH
 795: LD_INT 1
 797: ST_TO_ADDR
// uc_nation = 1 ;
 798: LD_ADDR_OWVAR 21
 802: PUSH
 803: LD_INT 1
 805: ST_TO_ADDR
// hc_gallery =  ;
 806: LD_ADDR_OWVAR 33
 810: PUSH
 811: LD_STRING 
 813: ST_TO_ADDR
// hc_name =  ;
 814: LD_ADDR_OWVAR 26
 818: PUSH
 819: LD_STRING 
 821: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 822: LD_ADDR_OWVAR 29
 826: PUSH
 827: LD_INT 9
 829: PPUSH
 830: LD_INT 11
 832: PPUSH
 833: CALL_OW 12
 837: PUSH
 838: LD_INT 10
 840: PPUSH
 841: LD_INT 12
 843: PPUSH
 844: CALL_OW 12
 848: PUSH
 849: EMPTY
 850: LIST
 851: LIST
 852: ST_TO_ADDR
// hc_skills = [ 5 - Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , Rand ( 1 , 2 ) , Rand ( 1 , 2 ) ] ;
 853: LD_ADDR_OWVAR 31
 857: PUSH
 858: LD_INT 5
 860: PUSH
 861: LD_INT 0
 863: PPUSH
 864: LD_INT 2
 866: PPUSH
 867: CALL_OW 12
 871: MINUS
 872: PUSH
 873: LD_INT 1
 875: PPUSH
 876: LD_INT 3
 878: PPUSH
 879: CALL_OW 12
 883: PUSH
 884: LD_INT 1
 886: PPUSH
 887: LD_INT 2
 889: PPUSH
 890: CALL_OW 12
 894: PUSH
 895: LD_INT 1
 897: PPUSH
 898: LD_INT 2
 900: PPUSH
 901: CALL_OW 12
 905: PUSH
 906: EMPTY
 907: LIST
 908: LIST
 909: LIST
 910: LIST
 911: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 912: LD_ADDR_OWVAR 27
 916: PUSH
 917: LD_INT 1
 919: PPUSH
 920: LD_INT 2
 922: PPUSH
 923: CALL_OW 12
 927: ST_TO_ADDR
// hc_class = 1 ;
 928: LD_ADDR_OWVAR 28
 932: PUSH
 933: LD_INT 1
 935: ST_TO_ADDR
// un := CreateHuman ;
 936: LD_ADDR_VAR 0 6
 940: PUSH
 941: CALL_OW 44
 945: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 946: LD_VAR 0 6
 950: PPUSH
 951: LD_VAR 0 5
 955: PPUSH
 956: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
 960: LD_ADDR_EXP 1
 964: PUSH
 965: LD_EXP 1
 969: PUSH
 970: LD_VAR 0 6
 974: ADD
 975: ST_TO_ADDR
// end ; end ;
 976: GO 772
 978: POP
 979: POP
// for i in depotRU1 do
 980: LD_ADDR_VAR 0 5
 984: PUSH
 985: LD_INT 194
 987: PUSH
 988: FOR_IN
 989: IFFALSE 1210
// begin l = 0 ;
 991: LD_ADDR_VAR 0 7
 995: PUSH
 996: LD_INT 0
 998: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
 999: LD_VAR 0 5
1003: PPUSH
1004: CALL_OW 310
1008: PUSH
1009: LD_INT 0
1011: EQUAL
1012: IFFALSE 1208
// begin repeat begin uc_side = 3 ;
1014: LD_ADDR_OWVAR 20
1018: PUSH
1019: LD_INT 3
1021: ST_TO_ADDR
// uc_nation = 3 ;
1022: LD_ADDR_OWVAR 21
1026: PUSH
1027: LD_INT 3
1029: ST_TO_ADDR
// hc_gallery =  ;
1030: LD_ADDR_OWVAR 33
1034: PUSH
1035: LD_STRING 
1037: ST_TO_ADDR
// hc_name =  ;
1038: LD_ADDR_OWVAR 26
1042: PUSH
1043: LD_STRING 
1045: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1046: LD_ADDR_OWVAR 29
1050: PUSH
1051: LD_INT 9
1053: PPUSH
1054: LD_INT 11
1056: PPUSH
1057: CALL_OW 12
1061: PUSH
1062: LD_INT 10
1064: PPUSH
1065: LD_INT 12
1067: PPUSH
1068: CALL_OW 12
1072: PUSH
1073: EMPTY
1074: LIST
1075: LIST
1076: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1077: LD_ADDR_OWVAR 31
1081: PUSH
1082: LD_INT 1
1084: PPUSH
1085: LD_INT 3
1087: PPUSH
1088: CALL_OW 12
1092: PUSH
1093: LD_VAR 0 9
1097: PUSH
1098: LD_INT 0
1100: PPUSH
1101: LD_INT 1
1103: PPUSH
1104: CALL_OW 12
1108: MINUS
1109: PUSH
1110: LD_INT 2
1112: PPUSH
1113: LD_INT 4
1115: PPUSH
1116: CALL_OW 12
1120: PUSH
1121: LD_INT 0
1123: PPUSH
1124: LD_INT 3
1126: PPUSH
1127: CALL_OW 12
1131: PUSH
1132: EMPTY
1133: LIST
1134: LIST
1135: LIST
1136: LIST
1137: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1138: LD_ADDR_OWVAR 27
1142: PUSH
1143: LD_INT 1
1145: PPUSH
1146: LD_INT 2
1148: PPUSH
1149: CALL_OW 12
1153: ST_TO_ADDR
// hc_class = 2 ;
1154: LD_ADDR_OWVAR 28
1158: PUSH
1159: LD_INT 2
1161: ST_TO_ADDR
// un = CreateHuman ;
1162: LD_ADDR_VAR 0 6
1166: PUSH
1167: CALL_OW 44
1171: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU1 ) ;
1172: LD_VAR 0 6
1176: PPUSH
1177: LD_INT 194
1179: PPUSH
1180: CALL_OW 52
// l = l + 1 ;
1184: LD_ADDR_VAR 0 7
1188: PUSH
1189: LD_VAR 0 7
1193: PUSH
1194: LD_INT 1
1196: PLUS
1197: ST_TO_ADDR
// end until l = 3 ;
1198: LD_VAR 0 7
1202: PUSH
1203: LD_INT 3
1205: EQUAL
1206: IFFALSE 1014
// end ; end ;
1208: GO 988
1210: POP
1211: POP
// for i in depotRU2 do
1212: LD_ADDR_VAR 0 5
1216: PUSH
1217: LD_INT 280
1219: PUSH
1220: FOR_IN
1221: IFFALSE 1442
// begin l = 0 ;
1223: LD_ADDR_VAR 0 7
1227: PUSH
1228: LD_INT 0
1230: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1231: LD_VAR 0 5
1235: PPUSH
1236: CALL_OW 310
1240: PUSH
1241: LD_INT 0
1243: EQUAL
1244: IFFALSE 1440
// begin repeat begin uc_side = 6 ;
1246: LD_ADDR_OWVAR 20
1250: PUSH
1251: LD_INT 6
1253: ST_TO_ADDR
// uc_nation = 3 ;
1254: LD_ADDR_OWVAR 21
1258: PUSH
1259: LD_INT 3
1261: ST_TO_ADDR
// hc_gallery =  ;
1262: LD_ADDR_OWVAR 33
1266: PUSH
1267: LD_STRING 
1269: ST_TO_ADDR
// hc_name =  ;
1270: LD_ADDR_OWVAR 26
1274: PUSH
1275: LD_STRING 
1277: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1278: LD_ADDR_OWVAR 29
1282: PUSH
1283: LD_INT 9
1285: PPUSH
1286: LD_INT 11
1288: PPUSH
1289: CALL_OW 12
1293: PUSH
1294: LD_INT 10
1296: PPUSH
1297: LD_INT 12
1299: PPUSH
1300: CALL_OW 12
1304: PUSH
1305: EMPTY
1306: LIST
1307: LIST
1308: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1309: LD_ADDR_OWVAR 31
1313: PUSH
1314: LD_INT 1
1316: PPUSH
1317: LD_INT 3
1319: PPUSH
1320: CALL_OW 12
1324: PUSH
1325: LD_VAR 0 9
1329: PUSH
1330: LD_INT 0
1332: PPUSH
1333: LD_INT 1
1335: PPUSH
1336: CALL_OW 12
1340: MINUS
1341: PUSH
1342: LD_INT 2
1344: PPUSH
1345: LD_INT 4
1347: PPUSH
1348: CALL_OW 12
1352: PUSH
1353: LD_INT 0
1355: PPUSH
1356: LD_INT 3
1358: PPUSH
1359: CALL_OW 12
1363: PUSH
1364: EMPTY
1365: LIST
1366: LIST
1367: LIST
1368: LIST
1369: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1370: LD_ADDR_OWVAR 27
1374: PUSH
1375: LD_INT 1
1377: PPUSH
1378: LD_INT 2
1380: PPUSH
1381: CALL_OW 12
1385: ST_TO_ADDR
// hc_class = 2 ;
1386: LD_ADDR_OWVAR 28
1390: PUSH
1391: LD_INT 2
1393: ST_TO_ADDR
// un = CreateHuman ;
1394: LD_ADDR_VAR 0 6
1398: PUSH
1399: CALL_OW 44
1403: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU2 ) ;
1404: LD_VAR 0 6
1408: PPUSH
1409: LD_INT 280
1411: PPUSH
1412: CALL_OW 52
// l = l + 1 ;
1416: LD_ADDR_VAR 0 7
1420: PUSH
1421: LD_VAR 0 7
1425: PUSH
1426: LD_INT 1
1428: PLUS
1429: ST_TO_ADDR
// end until l = 3 ;
1430: LD_VAR 0 7
1434: PUSH
1435: LD_INT 3
1437: EQUAL
1438: IFFALSE 1246
// end ; end ;
1440: GO 1220
1442: POP
1443: POP
// for i in depotRU3 do
1444: LD_ADDR_VAR 0 5
1448: PUSH
1449: LD_INT 284
1451: PUSH
1452: FOR_IN
1453: IFFALSE 1674
// begin l = 0 ;
1455: LD_ADDR_VAR 0 7
1459: PUSH
1460: LD_INT 0
1462: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1463: LD_VAR 0 5
1467: PPUSH
1468: CALL_OW 310
1472: PUSH
1473: LD_INT 0
1475: EQUAL
1476: IFFALSE 1672
// begin repeat begin uc_side = 5 ;
1478: LD_ADDR_OWVAR 20
1482: PUSH
1483: LD_INT 5
1485: ST_TO_ADDR
// uc_nation = 3 ;
1486: LD_ADDR_OWVAR 21
1490: PUSH
1491: LD_INT 3
1493: ST_TO_ADDR
// hc_gallery =  ;
1494: LD_ADDR_OWVAR 33
1498: PUSH
1499: LD_STRING 
1501: ST_TO_ADDR
// hc_name =  ;
1502: LD_ADDR_OWVAR 26
1506: PUSH
1507: LD_STRING 
1509: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1510: LD_ADDR_OWVAR 29
1514: PUSH
1515: LD_INT 9
1517: PPUSH
1518: LD_INT 11
1520: PPUSH
1521: CALL_OW 12
1525: PUSH
1526: LD_INT 10
1528: PPUSH
1529: LD_INT 12
1531: PPUSH
1532: CALL_OW 12
1536: PUSH
1537: EMPTY
1538: LIST
1539: LIST
1540: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , EngLevel - Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 3 ) ] ;
1541: LD_ADDR_OWVAR 31
1545: PUSH
1546: LD_INT 1
1548: PPUSH
1549: LD_INT 3
1551: PPUSH
1552: CALL_OW 12
1556: PUSH
1557: LD_VAR 0 9
1561: PUSH
1562: LD_INT 0
1564: PPUSH
1565: LD_INT 1
1567: PPUSH
1568: CALL_OW 12
1572: MINUS
1573: PUSH
1574: LD_INT 2
1576: PPUSH
1577: LD_INT 4
1579: PPUSH
1580: CALL_OW 12
1584: PUSH
1585: LD_INT 0
1587: PPUSH
1588: LD_INT 3
1590: PPUSH
1591: CALL_OW 12
1595: PUSH
1596: EMPTY
1597: LIST
1598: LIST
1599: LIST
1600: LIST
1601: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1602: LD_ADDR_OWVAR 27
1606: PUSH
1607: LD_INT 1
1609: PPUSH
1610: LD_INT 2
1612: PPUSH
1613: CALL_OW 12
1617: ST_TO_ADDR
// hc_class = 2 ;
1618: LD_ADDR_OWVAR 28
1622: PUSH
1623: LD_INT 2
1625: ST_TO_ADDR
// un = CreateHuman ;
1626: LD_ADDR_VAR 0 6
1630: PUSH
1631: CALL_OW 44
1635: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotRU3 ) ;
1636: LD_VAR 0 6
1640: PPUSH
1641: LD_INT 284
1643: PPUSH
1644: CALL_OW 52
// l = l + 1 ;
1648: LD_ADDR_VAR 0 7
1652: PUSH
1653: LD_VAR 0 7
1657: PUSH
1658: LD_INT 1
1660: PLUS
1661: ST_TO_ADDR
// end until l = 3 ;
1662: LD_VAR 0 7
1666: PUSH
1667: LD_INT 3
1669: EQUAL
1670: IFFALSE 1478
// end ; end ;
1672: GO 1452
1674: POP
1675: POP
// for i in depotAM do
1676: LD_ADDR_VAR 0 5
1680: PUSH
1681: LD_INT 14
1683: PUSH
1684: FOR_IN
1685: IFFALSE 1884
// begin l = 0 ;
1687: LD_ADDR_VAR 0 7
1691: PUSH
1692: LD_INT 0
1694: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1695: LD_VAR 0 5
1699: PPUSH
1700: CALL_OW 310
1704: PUSH
1705: LD_INT 0
1707: EQUAL
1708: IFFALSE 1882
// begin repeat begin uc_side = 1 ;
1710: LD_ADDR_OWVAR 20
1714: PUSH
1715: LD_INT 1
1717: ST_TO_ADDR
// uc_nation = 1 ;
1718: LD_ADDR_OWVAR 21
1722: PUSH
1723: LD_INT 1
1725: ST_TO_ADDR
// hc_gallery =  ;
1726: LD_ADDR_OWVAR 33
1730: PUSH
1731: LD_STRING 
1733: ST_TO_ADDR
// hc_name =  ;
1734: LD_ADDR_OWVAR 26
1738: PUSH
1739: LD_STRING 
1741: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1742: LD_ADDR_OWVAR 29
1746: PUSH
1747: LD_INT 9
1749: PPUSH
1750: LD_INT 11
1752: PPUSH
1753: CALL_OW 12
1757: PUSH
1758: LD_INT 10
1760: PPUSH
1761: LD_INT 12
1763: PPUSH
1764: CALL_OW 12
1768: PUSH
1769: EMPTY
1770: LIST
1771: LIST
1772: ST_TO_ADDR
// hc_skills = [ 3 , 6 , 2 , 1 ] ;
1773: LD_ADDR_OWVAR 31
1777: PUSH
1778: LD_INT 3
1780: PUSH
1781: LD_INT 6
1783: PUSH
1784: LD_INT 2
1786: PUSH
1787: LD_INT 1
1789: PUSH
1790: EMPTY
1791: LIST
1792: LIST
1793: LIST
1794: LIST
1795: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1796: LD_ADDR_OWVAR 27
1800: PUSH
1801: LD_INT 1
1803: PPUSH
1804: LD_INT 2
1806: PPUSH
1807: CALL_OW 12
1811: ST_TO_ADDR
// hc_class = 2 ;
1812: LD_ADDR_OWVAR 28
1816: PUSH
1817: LD_INT 2
1819: ST_TO_ADDR
// un = CreateHuman ;
1820: LD_ADDR_VAR 0 6
1824: PUSH
1825: CALL_OW 44
1829: ST_TO_ADDR
// PlaceHumanInUnit ( un , depotAM ) ;
1830: LD_VAR 0 6
1834: PPUSH
1835: LD_INT 14
1837: PPUSH
1838: CALL_OW 52
// l = l + 1 ;
1842: LD_ADDR_VAR 0 7
1846: PUSH
1847: LD_VAR 0 7
1851: PUSH
1852: LD_INT 1
1854: PLUS
1855: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
1856: LD_ADDR_EXP 1
1860: PUSH
1861: LD_EXP 1
1865: PUSH
1866: LD_VAR 0 6
1870: ADD
1871: ST_TO_ADDR
// end until l = 1 ;
1872: LD_VAR 0 7
1876: PUSH
1877: LD_INT 1
1879: EQUAL
1880: IFFALSE 1710
// end ; end ;
1882: GO 1684
1884: POP
1885: POP
// for i in factoryRU1 do
1886: LD_ADDR_VAR 0 5
1890: PUSH
1891: LD_INT 255
1893: PUSH
1894: FOR_IN
1895: IFFALSE 2104
// begin l = 0 ;
1897: LD_ADDR_VAR 0 7
1901: PUSH
1902: LD_INT 0
1904: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1905: LD_VAR 0 5
1909: PPUSH
1910: CALL_OW 310
1914: PUSH
1915: LD_INT 0
1917: EQUAL
1918: IFFALSE 2102
// begin repeat begin uc_side = 3 ;
1920: LD_ADDR_OWVAR 20
1924: PUSH
1925: LD_INT 3
1927: ST_TO_ADDR
// uc_nation = 3 ;
1928: LD_ADDR_OWVAR 21
1932: PUSH
1933: LD_INT 3
1935: ST_TO_ADDR
// hc_gallery =  ;
1936: LD_ADDR_OWVAR 33
1940: PUSH
1941: LD_STRING 
1943: ST_TO_ADDR
// hc_name =  ;
1944: LD_ADDR_OWVAR 26
1948: PUSH
1949: LD_STRING 
1951: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1952: LD_ADDR_OWVAR 29
1956: PUSH
1957: LD_INT 9
1959: PPUSH
1960: LD_INT 11
1962: PPUSH
1963: CALL_OW 12
1967: PUSH
1968: LD_INT 10
1970: PPUSH
1971: LD_INT 12
1973: PPUSH
1974: CALL_OW 12
1978: PUSH
1979: EMPTY
1980: LIST
1981: LIST
1982: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
1983: LD_ADDR_OWVAR 31
1987: PUSH
1988: LD_INT 1
1990: PPUSH
1991: LD_INT 4
1993: PPUSH
1994: CALL_OW 12
1998: PUSH
1999: LD_INT 0
2001: PPUSH
2002: LD_INT 4
2004: PPUSH
2005: CALL_OW 12
2009: PUSH
2010: LD_VAR 0 10
2014: PUSH
2015: LD_INT 0
2017: PPUSH
2018: LD_INT 4
2020: PPUSH
2021: CALL_OW 12
2025: PUSH
2026: EMPTY
2027: LIST
2028: LIST
2029: LIST
2030: LIST
2031: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2032: LD_ADDR_OWVAR 27
2036: PUSH
2037: LD_INT 1
2039: PPUSH
2040: LD_INT 2
2042: PPUSH
2043: CALL_OW 12
2047: ST_TO_ADDR
// hc_class = 3 ;
2048: LD_ADDR_OWVAR 28
2052: PUSH
2053: LD_INT 3
2055: ST_TO_ADDR
// un = CreateHuman ;
2056: LD_ADDR_VAR 0 6
2060: PUSH
2061: CALL_OW 44
2065: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU1 ) ;
2066: LD_VAR 0 6
2070: PPUSH
2071: LD_INT 255
2073: PPUSH
2074: CALL_OW 52
// l = l + 1 ;
2078: LD_ADDR_VAR 0 7
2082: PUSH
2083: LD_VAR 0 7
2087: PUSH
2088: LD_INT 1
2090: PLUS
2091: ST_TO_ADDR
// end until l = 3 ;
2092: LD_VAR 0 7
2096: PUSH
2097: LD_INT 3
2099: EQUAL
2100: IFFALSE 1920
// end ; end ;
2102: GO 1894
2104: POP
2105: POP
// for i in factoryRU2 do
2106: LD_ADDR_VAR 0 5
2110: PUSH
2111: LD_INT 299
2113: PUSH
2114: FOR_IN
2115: IFFALSE 2324
// begin l = 0 ;
2117: LD_ADDR_VAR 0 7
2121: PUSH
2122: LD_INT 0
2124: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2125: LD_VAR 0 5
2129: PPUSH
2130: CALL_OW 310
2134: PUSH
2135: LD_INT 0
2137: EQUAL
2138: IFFALSE 2322
// begin repeat begin uc_side = 6 ;
2140: LD_ADDR_OWVAR 20
2144: PUSH
2145: LD_INT 6
2147: ST_TO_ADDR
// uc_nation = 3 ;
2148: LD_ADDR_OWVAR 21
2152: PUSH
2153: LD_INT 3
2155: ST_TO_ADDR
// hc_gallery =  ;
2156: LD_ADDR_OWVAR 33
2160: PUSH
2161: LD_STRING 
2163: ST_TO_ADDR
// hc_name =  ;
2164: LD_ADDR_OWVAR 26
2168: PUSH
2169: LD_STRING 
2171: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2172: LD_ADDR_OWVAR 29
2176: PUSH
2177: LD_INT 9
2179: PPUSH
2180: LD_INT 11
2182: PPUSH
2183: CALL_OW 12
2187: PUSH
2188: LD_INT 10
2190: PPUSH
2191: LD_INT 12
2193: PPUSH
2194: CALL_OW 12
2198: PUSH
2199: EMPTY
2200: LIST
2201: LIST
2202: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
2203: LD_ADDR_OWVAR 31
2207: PUSH
2208: LD_INT 1
2210: PPUSH
2211: LD_INT 4
2213: PPUSH
2214: CALL_OW 12
2218: PUSH
2219: LD_INT 0
2221: PPUSH
2222: LD_INT 4
2224: PPUSH
2225: CALL_OW 12
2229: PUSH
2230: LD_VAR 0 10
2234: PUSH
2235: LD_INT 0
2237: PPUSH
2238: LD_INT 4
2240: PPUSH
2241: CALL_OW 12
2245: PUSH
2246: EMPTY
2247: LIST
2248: LIST
2249: LIST
2250: LIST
2251: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2252: LD_ADDR_OWVAR 27
2256: PUSH
2257: LD_INT 1
2259: PPUSH
2260: LD_INT 2
2262: PPUSH
2263: CALL_OW 12
2267: ST_TO_ADDR
// hc_class = 3 ;
2268: LD_ADDR_OWVAR 28
2272: PUSH
2273: LD_INT 3
2275: ST_TO_ADDR
// un = CreateHuman ;
2276: LD_ADDR_VAR 0 6
2280: PUSH
2281: CALL_OW 44
2285: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryRU2 ) ;
2286: LD_VAR 0 6
2290: PPUSH
2291: LD_INT 299
2293: PPUSH
2294: CALL_OW 52
// l = l + 1 ;
2298: LD_ADDR_VAR 0 7
2302: PUSH
2303: LD_VAR 0 7
2307: PUSH
2308: LD_INT 1
2310: PLUS
2311: ST_TO_ADDR
// end until l = 3 ;
2312: LD_VAR 0 7
2316: PUSH
2317: LD_INT 3
2319: EQUAL
2320: IFFALSE 2140
// end ; end ;
2322: GO 2114
2324: POP
2325: POP
// for i in factoryAM do
2326: LD_ADDR_VAR 0 5
2330: PUSH
2331: LD_INT 110
2333: PUSH
2334: FOR_IN
2335: IFFALSE 2534
// begin l = 0 ;
2337: LD_ADDR_VAR 0 7
2341: PUSH
2342: LD_INT 0
2344: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2345: LD_VAR 0 5
2349: PPUSH
2350: CALL_OW 310
2354: PUSH
2355: LD_INT 0
2357: EQUAL
2358: IFFALSE 2532
// begin repeat begin uc_side = 1 ;
2360: LD_ADDR_OWVAR 20
2364: PUSH
2365: LD_INT 1
2367: ST_TO_ADDR
// uc_nation = 1 ;
2368: LD_ADDR_OWVAR 21
2372: PUSH
2373: LD_INT 1
2375: ST_TO_ADDR
// hc_gallery =  ;
2376: LD_ADDR_OWVAR 33
2380: PUSH
2381: LD_STRING 
2383: ST_TO_ADDR
// hc_name =  ;
2384: LD_ADDR_OWVAR 26
2388: PUSH
2389: LD_STRING 
2391: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2392: LD_ADDR_OWVAR 29
2396: PUSH
2397: LD_INT 9
2399: PPUSH
2400: LD_INT 11
2402: PPUSH
2403: CALL_OW 12
2407: PUSH
2408: LD_INT 10
2410: PPUSH
2411: LD_INT 12
2413: PPUSH
2414: CALL_OW 12
2418: PUSH
2419: EMPTY
2420: LIST
2421: LIST
2422: ST_TO_ADDR
// hc_skills = [ 1 , 2 , 5 , 3 ] ;
2423: LD_ADDR_OWVAR 31
2427: PUSH
2428: LD_INT 1
2430: PUSH
2431: LD_INT 2
2433: PUSH
2434: LD_INT 5
2436: PUSH
2437: LD_INT 3
2439: PUSH
2440: EMPTY
2441: LIST
2442: LIST
2443: LIST
2444: LIST
2445: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2446: LD_ADDR_OWVAR 27
2450: PUSH
2451: LD_INT 1
2453: PPUSH
2454: LD_INT 2
2456: PPUSH
2457: CALL_OW 12
2461: ST_TO_ADDR
// hc_class = 3 ;
2462: LD_ADDR_OWVAR 28
2466: PUSH
2467: LD_INT 3
2469: ST_TO_ADDR
// un = CreateHuman ;
2470: LD_ADDR_VAR 0 6
2474: PUSH
2475: CALL_OW 44
2479: ST_TO_ADDR
// PlaceHumanInUnit ( un , factoryAM ) ;
2480: LD_VAR 0 6
2484: PPUSH
2485: LD_INT 110
2487: PPUSH
2488: CALL_OW 52
// l = l + 1 ;
2492: LD_ADDR_VAR 0 7
2496: PUSH
2497: LD_VAR 0 7
2501: PUSH
2502: LD_INT 1
2504: PLUS
2505: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
2506: LD_ADDR_EXP 1
2510: PUSH
2511: LD_EXP 1
2515: PUSH
2516: LD_VAR 0 6
2520: ADD
2521: ST_TO_ADDR
// end until l = 1 ;
2522: LD_VAR 0 7
2526: PUSH
2527: LD_INT 1
2529: EQUAL
2530: IFFALSE 2360
// end ; end ;
2532: GO 2334
2534: POP
2535: POP
// for i in labAM do
2536: LD_ADDR_VAR 0 5
2540: PUSH
2541: LD_INT 150
2543: PUSH
2544: FOR_IN
2545: IFFALSE 2744
// begin l = 0 ;
2547: LD_ADDR_VAR 0 7
2551: PUSH
2552: LD_INT 0
2554: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2555: LD_VAR 0 5
2559: PPUSH
2560: CALL_OW 310
2564: PUSH
2565: LD_INT 0
2567: EQUAL
2568: IFFALSE 2742
// begin repeat begin uc_side = 1 ;
2570: LD_ADDR_OWVAR 20
2574: PUSH
2575: LD_INT 1
2577: ST_TO_ADDR
// uc_nation = 1 ;
2578: LD_ADDR_OWVAR 21
2582: PUSH
2583: LD_INT 1
2585: ST_TO_ADDR
// hc_gallery =  ;
2586: LD_ADDR_OWVAR 33
2590: PUSH
2591: LD_STRING 
2593: ST_TO_ADDR
// hc_name =  ;
2594: LD_ADDR_OWVAR 26
2598: PUSH
2599: LD_STRING 
2601: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2602: LD_ADDR_OWVAR 29
2606: PUSH
2607: LD_INT 9
2609: PPUSH
2610: LD_INT 11
2612: PPUSH
2613: CALL_OW 12
2617: PUSH
2618: LD_INT 10
2620: PPUSH
2621: LD_INT 12
2623: PPUSH
2624: CALL_OW 12
2628: PUSH
2629: EMPTY
2630: LIST
2631: LIST
2632: ST_TO_ADDR
// hc_skills = [ 0 , 2 , 2 , 5 ] ;
2633: LD_ADDR_OWVAR 31
2637: PUSH
2638: LD_INT 0
2640: PUSH
2641: LD_INT 2
2643: PUSH
2644: LD_INT 2
2646: PUSH
2647: LD_INT 5
2649: PUSH
2650: EMPTY
2651: LIST
2652: LIST
2653: LIST
2654: LIST
2655: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2656: LD_ADDR_OWVAR 27
2660: PUSH
2661: LD_INT 1
2663: PPUSH
2664: LD_INT 2
2666: PPUSH
2667: CALL_OW 12
2671: ST_TO_ADDR
// hc_class = 4 ;
2672: LD_ADDR_OWVAR 28
2676: PUSH
2677: LD_INT 4
2679: ST_TO_ADDR
// un = CreateHuman ;
2680: LD_ADDR_VAR 0 6
2684: PUSH
2685: CALL_OW 44
2689: ST_TO_ADDR
// PlaceHumanInUnit ( un , labAM ) ;
2690: LD_VAR 0 6
2694: PPUSH
2695: LD_INT 150
2697: PPUSH
2698: CALL_OW 52
// l = l + 1 ;
2702: LD_ADDR_VAR 0 7
2706: PUSH
2707: LD_VAR 0 7
2711: PUSH
2712: LD_INT 1
2714: PLUS
2715: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
2716: LD_ADDR_EXP 1
2720: PUSH
2721: LD_EXP 1
2725: PUSH
2726: LD_VAR 0 6
2730: ADD
2731: ST_TO_ADDR
// end until l = 1 ;
2732: LD_VAR 0 7
2736: PUSH
2737: LD_INT 1
2739: EQUAL
2740: IFFALSE 2570
// end ; end ;
2742: GO 2544
2744: POP
2745: POP
// for i in labRU1 do
2746: LD_ADDR_VAR 0 5
2750: PUSH
2751: LD_INT 446
2753: PUSH
2754: FOR_IN
2755: IFFALSE 2964
// begin l = 0 ;
2757: LD_ADDR_VAR 0 7
2761: PUSH
2762: LD_INT 0
2764: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2765: LD_VAR 0 5
2769: PPUSH
2770: CALL_OW 310
2774: PUSH
2775: LD_INT 0
2777: EQUAL
2778: IFFALSE 2962
// begin repeat begin uc_side = 3 ;
2780: LD_ADDR_OWVAR 20
2784: PUSH
2785: LD_INT 3
2787: ST_TO_ADDR
// uc_nation = 3 ;
2788: LD_ADDR_OWVAR 21
2792: PUSH
2793: LD_INT 3
2795: ST_TO_ADDR
// hc_gallery =  ;
2796: LD_ADDR_OWVAR 33
2800: PUSH
2801: LD_STRING 
2803: ST_TO_ADDR
// hc_name =  ;
2804: LD_ADDR_OWVAR 26
2808: PUSH
2809: LD_STRING 
2811: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2812: LD_ADDR_OWVAR 29
2816: PUSH
2817: LD_INT 9
2819: PPUSH
2820: LD_INT 11
2822: PPUSH
2823: CALL_OW 12
2827: PUSH
2828: LD_INT 10
2830: PPUSH
2831: LD_INT 12
2833: PPUSH
2834: CALL_OW 12
2838: PUSH
2839: EMPTY
2840: LIST
2841: LIST
2842: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 1 , 3 ) , DocLevel ] ;
2843: LD_ADDR_OWVAR 31
2847: PUSH
2848: LD_INT 0
2850: PPUSH
2851: LD_INT 2
2853: PPUSH
2854: CALL_OW 12
2858: PUSH
2859: LD_INT 0
2861: PPUSH
2862: LD_INT 4
2864: PPUSH
2865: CALL_OW 12
2869: PUSH
2870: LD_INT 1
2872: PPUSH
2873: LD_INT 3
2875: PPUSH
2876: CALL_OW 12
2880: PUSH
2881: LD_VAR 0 11
2885: PUSH
2886: EMPTY
2887: LIST
2888: LIST
2889: LIST
2890: LIST
2891: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2892: LD_ADDR_OWVAR 27
2896: PUSH
2897: LD_INT 1
2899: PPUSH
2900: LD_INT 2
2902: PPUSH
2903: CALL_OW 12
2907: ST_TO_ADDR
// hc_class = 4 ;
2908: LD_ADDR_OWVAR 28
2912: PUSH
2913: LD_INT 4
2915: ST_TO_ADDR
// un = CreateHuman ;
2916: LD_ADDR_VAR 0 6
2920: PUSH
2921: CALL_OW 44
2925: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU1 ) ;
2926: LD_VAR 0 6
2930: PPUSH
2931: LD_INT 446
2933: PPUSH
2934: CALL_OW 52
// l = l + 1 ;
2938: LD_ADDR_VAR 0 7
2942: PUSH
2943: LD_VAR 0 7
2947: PUSH
2948: LD_INT 1
2950: PLUS
2951: ST_TO_ADDR
// end until l = 2 ;
2952: LD_VAR 0 7
2956: PUSH
2957: LD_INT 2
2959: EQUAL
2960: IFFALSE 2780
// end ; end ;
2962: GO 2754
2964: POP
2965: POP
// for i in labRU2 do
2966: LD_ADDR_VAR 0 5
2970: PUSH
2971: LD_INT 713
2973: PUSH
2974: FOR_IN
2975: IFFALSE 3184
// begin l = 0 ;
2977: LD_ADDR_VAR 0 7
2981: PUSH
2982: LD_INT 0
2984: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2985: LD_VAR 0 5
2989: PPUSH
2990: CALL_OW 310
2994: PUSH
2995: LD_INT 0
2997: EQUAL
2998: IFFALSE 3182
// begin repeat begin uc_side = 6 ;
3000: LD_ADDR_OWVAR 20
3004: PUSH
3005: LD_INT 6
3007: ST_TO_ADDR
// uc_nation = 3 ;
3008: LD_ADDR_OWVAR 21
3012: PUSH
3013: LD_INT 3
3015: ST_TO_ADDR
// hc_gallery =  ;
3016: LD_ADDR_OWVAR 33
3020: PUSH
3021: LD_STRING 
3023: ST_TO_ADDR
// hc_name =  ;
3024: LD_ADDR_OWVAR 26
3028: PUSH
3029: LD_STRING 
3031: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3032: LD_ADDR_OWVAR 29
3036: PUSH
3037: LD_INT 9
3039: PPUSH
3040: LD_INT 11
3042: PPUSH
3043: CALL_OW 12
3047: PUSH
3048: LD_INT 10
3050: PPUSH
3051: LD_INT 12
3053: PPUSH
3054: CALL_OW 12
3058: PUSH
3059: EMPTY
3060: LIST
3061: LIST
3062: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 1 , 3 ) , DocLevel ] ;
3063: LD_ADDR_OWVAR 31
3067: PUSH
3068: LD_INT 0
3070: PPUSH
3071: LD_INT 2
3073: PPUSH
3074: CALL_OW 12
3078: PUSH
3079: LD_INT 0
3081: PPUSH
3082: LD_INT 4
3084: PPUSH
3085: CALL_OW 12
3089: PUSH
3090: LD_INT 1
3092: PPUSH
3093: LD_INT 3
3095: PPUSH
3096: CALL_OW 12
3100: PUSH
3101: LD_VAR 0 11
3105: PUSH
3106: EMPTY
3107: LIST
3108: LIST
3109: LIST
3110: LIST
3111: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3112: LD_ADDR_OWVAR 27
3116: PUSH
3117: LD_INT 1
3119: PPUSH
3120: LD_INT 2
3122: PPUSH
3123: CALL_OW 12
3127: ST_TO_ADDR
// hc_class = 4 ;
3128: LD_ADDR_OWVAR 28
3132: PUSH
3133: LD_INT 4
3135: ST_TO_ADDR
// un = CreateHuman ;
3136: LD_ADDR_VAR 0 6
3140: PUSH
3141: CALL_OW 44
3145: ST_TO_ADDR
// PlaceHumanInUnit ( un , labRU2 ) ;
3146: LD_VAR 0 6
3150: PPUSH
3151: LD_INT 713
3153: PPUSH
3154: CALL_OW 52
// l = l + 1 ;
3158: LD_ADDR_VAR 0 7
3162: PUSH
3163: LD_VAR 0 7
3167: PUSH
3168: LD_INT 1
3170: PLUS
3171: ST_TO_ADDR
// end until l = 1 ;
3172: LD_VAR 0 7
3176: PUSH
3177: LD_INT 1
3179: EQUAL
3180: IFFALSE 3000
// end ; end ;
3182: GO 2974
3184: POP
3185: POP
// for i in armouryAM1 do
3186: LD_ADDR_VAR 0 5
3190: PUSH
3191: LD_INT 182
3193: PUSH
3194: FOR_IN
3195: IFFALSE 3378
// begin l = 0 ;
3197: LD_ADDR_VAR 0 7
3201: PUSH
3202: LD_INT 0
3204: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3205: LD_VAR 0 5
3209: PPUSH
3210: CALL_OW 310
3214: PUSH
3215: LD_INT 0
3217: EQUAL
3218: IFFALSE 3376
// begin repeat begin uc_side = 1 ;
3220: LD_ADDR_OWVAR 20
3224: PUSH
3225: LD_INT 1
3227: ST_TO_ADDR
// uc_nation = 1 ;
3228: LD_ADDR_OWVAR 21
3232: PUSH
3233: LD_INT 1
3235: ST_TO_ADDR
// hc_gallery =  ;
3236: LD_ADDR_OWVAR 33
3240: PUSH
3241: LD_STRING 
3243: ST_TO_ADDR
// hc_name =  ;
3244: LD_ADDR_OWVAR 26
3248: PUSH
3249: LD_STRING 
3251: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3252: LD_ADDR_OWVAR 29
3256: PUSH
3257: LD_INT 9
3259: PPUSH
3260: LD_INT 11
3262: PPUSH
3263: CALL_OW 12
3267: PUSH
3268: LD_INT 10
3270: PPUSH
3271: LD_INT 12
3273: PPUSH
3274: CALL_OW 12
3278: PUSH
3279: EMPTY
3280: LIST
3281: LIST
3282: ST_TO_ADDR
// hc_skills = [ 5 , 2 , 3 , 0 ] ;
3283: LD_ADDR_OWVAR 31
3287: PUSH
3288: LD_INT 5
3290: PUSH
3291: LD_INT 2
3293: PUSH
3294: LD_INT 3
3296: PUSH
3297: LD_INT 0
3299: PUSH
3300: EMPTY
3301: LIST
3302: LIST
3303: LIST
3304: LIST
3305: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3306: LD_ADDR_OWVAR 27
3310: PUSH
3311: LD_INT 1
3313: PPUSH
3314: LD_INT 2
3316: PPUSH
3317: CALL_OW 12
3321: ST_TO_ADDR
// hc_class = 1 ;
3322: LD_ADDR_OWVAR 28
3326: PUSH
3327: LD_INT 1
3329: ST_TO_ADDR
// un = CreateHuman ;
3330: LD_ADDR_VAR 0 6
3334: PUSH
3335: CALL_OW 44
3339: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM1 ) ;
3340: LD_VAR 0 6
3344: PPUSH
3345: LD_INT 182
3347: PPUSH
3348: CALL_OW 52
// l = l + 1 ;
3352: LD_ADDR_VAR 0 7
3356: PUSH
3357: LD_VAR 0 7
3361: PUSH
3362: LD_INT 1
3364: PLUS
3365: ST_TO_ADDR
// end until l = 1 ;
3366: LD_VAR 0 7
3370: PUSH
3371: LD_INT 1
3373: EQUAL
3374: IFFALSE 3220
// end ; end ;
3376: GO 3194
3378: POP
3379: POP
// for i in armouryAM2 do
3380: LD_ADDR_VAR 0 5
3384: PUSH
3385: LD_INT 84
3387: PUSH
3388: FOR_IN
3389: IFFALSE 3704
// begin if IsInUnit ( i ) = 0 then
3391: LD_VAR 0 5
3395: PPUSH
3396: CALL_OW 310
3400: PUSH
3401: LD_INT 0
3403: EQUAL
3404: IFFALSE 3702
// begin uc_side = 1 ;
3406: LD_ADDR_OWVAR 20
3410: PUSH
3411: LD_INT 1
3413: ST_TO_ADDR
// uc_nation = 1 ;
3414: LD_ADDR_OWVAR 21
3418: PUSH
3419: LD_INT 1
3421: ST_TO_ADDR
// hc_gallery =  ;
3422: LD_ADDR_OWVAR 33
3426: PUSH
3427: LD_STRING 
3429: ST_TO_ADDR
// hc_name =  ;
3430: LD_ADDR_OWVAR 26
3434: PUSH
3435: LD_STRING 
3437: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3438: LD_ADDR_OWVAR 29
3442: PUSH
3443: LD_INT 9
3445: PPUSH
3446: LD_INT 11
3448: PPUSH
3449: CALL_OW 12
3453: PUSH
3454: LD_INT 10
3456: PPUSH
3457: LD_INT 12
3459: PPUSH
3460: CALL_OW 12
3464: PUSH
3465: EMPTY
3466: LIST
3467: LIST
3468: ST_TO_ADDR
// hc_skills = [ 4 , 2 , 3 , 0 ] ;
3469: LD_ADDR_OWVAR 31
3473: PUSH
3474: LD_INT 4
3476: PUSH
3477: LD_INT 2
3479: PUSH
3480: LD_INT 3
3482: PUSH
3483: LD_INT 0
3485: PUSH
3486: EMPTY
3487: LIST
3488: LIST
3489: LIST
3490: LIST
3491: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3492: LD_ADDR_OWVAR 27
3496: PUSH
3497: LD_INT 1
3499: PPUSH
3500: LD_INT 2
3502: PPUSH
3503: CALL_OW 12
3507: ST_TO_ADDR
// hc_class = 1 ;
3508: LD_ADDR_OWVAR 28
3512: PUSH
3513: LD_INT 1
3515: ST_TO_ADDR
// un = CreateHuman ;
3516: LD_ADDR_VAR 0 6
3520: PUSH
3521: CALL_OW 44
3525: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
3526: LD_ADDR_EXP 1
3530: PUSH
3531: LD_EXP 1
3535: PUSH
3536: LD_VAR 0 6
3540: ADD
3541: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM2 ) ;
3542: LD_VAR 0 6
3546: PPUSH
3547: LD_INT 84
3549: PPUSH
3550: CALL_OW 52
// uc_side = 1 ;
3554: LD_ADDR_OWVAR 20
3558: PUSH
3559: LD_INT 1
3561: ST_TO_ADDR
// uc_nation = 1 ;
3562: LD_ADDR_OWVAR 21
3566: PUSH
3567: LD_INT 1
3569: ST_TO_ADDR
// hc_gallery =  ;
3570: LD_ADDR_OWVAR 33
3574: PUSH
3575: LD_STRING 
3577: ST_TO_ADDR
// hc_name =  ;
3578: LD_ADDR_OWVAR 26
3582: PUSH
3583: LD_STRING 
3585: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3586: LD_ADDR_OWVAR 29
3590: PUSH
3591: LD_INT 9
3593: PPUSH
3594: LD_INT 11
3596: PPUSH
3597: CALL_OW 12
3601: PUSH
3602: LD_INT 10
3604: PPUSH
3605: LD_INT 12
3607: PPUSH
3608: CALL_OW 12
3612: PUSH
3613: EMPTY
3614: LIST
3615: LIST
3616: ST_TO_ADDR
// hc_skills = [ 5 , 1 , 2 , 1 ] ;
3617: LD_ADDR_OWVAR 31
3621: PUSH
3622: LD_INT 5
3624: PUSH
3625: LD_INT 1
3627: PUSH
3628: LD_INT 2
3630: PUSH
3631: LD_INT 1
3633: PUSH
3634: EMPTY
3635: LIST
3636: LIST
3637: LIST
3638: LIST
3639: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3640: LD_ADDR_OWVAR 27
3644: PUSH
3645: LD_INT 1
3647: PPUSH
3648: LD_INT 2
3650: PPUSH
3651: CALL_OW 12
3655: ST_TO_ADDR
// hc_class = 1 ;
3656: LD_ADDR_OWVAR 28
3660: PUSH
3661: LD_INT 1
3663: ST_TO_ADDR
// un = CreateHuman ;
3664: LD_ADDR_VAR 0 6
3668: PUSH
3669: CALL_OW 44
3673: ST_TO_ADDR
// AmericanPerson = AmericanPerson ^ un ;
3674: LD_ADDR_EXP 1
3678: PUSH
3679: LD_EXP 1
3683: PUSH
3684: LD_VAR 0 6
3688: ADD
3689: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryAM2 ) ;
3690: LD_VAR 0 6
3694: PPUSH
3695: LD_INT 84
3697: PPUSH
3698: CALL_OW 52
// end ; end ;
3702: GO 3388
3704: POP
3705: POP
// for i in armouryRU1 do
3706: LD_ADDR_VAR 0 5
3710: PUSH
3711: LD_INT 209
3713: PUSH
3714: FOR_IN
3715: IFFALSE 3945
// begin l = 0 ;
3717: LD_ADDR_VAR 0 7
3721: PUSH
3722: LD_INT 0
3724: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3725: LD_VAR 0 5
3729: PPUSH
3730: CALL_OW 310
3734: PUSH
3735: LD_INT 0
3737: EQUAL
3738: IFFALSE 3943
// begin repeat begin uc_side = 3 ;
3740: LD_ADDR_OWVAR 20
3744: PUSH
3745: LD_INT 3
3747: ST_TO_ADDR
// uc_nation = 3 ;
3748: LD_ADDR_OWVAR 21
3752: PUSH
3753: LD_INT 3
3755: ST_TO_ADDR
// hc_gallery =  ;
3756: LD_ADDR_OWVAR 33
3760: PUSH
3761: LD_STRING 
3763: ST_TO_ADDR
// hc_name =  ;
3764: LD_ADDR_OWVAR 26
3768: PUSH
3769: LD_STRING 
3771: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3772: LD_ADDR_OWVAR 29
3776: PUSH
3777: LD_INT 9
3779: PPUSH
3780: LD_INT 11
3782: PPUSH
3783: CALL_OW 12
3787: PUSH
3788: LD_INT 10
3790: PPUSH
3791: LD_INT 12
3793: PPUSH
3794: CALL_OW 12
3798: PUSH
3799: EMPTY
3800: LIST
3801: LIST
3802: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
3803: LD_ADDR_OWVAR 31
3807: PUSH
3808: LD_VAR 0 8
3812: PUSH
3813: LD_INT 1
3815: PPUSH
3816: LD_INT 4
3818: PPUSH
3819: CALL_OW 12
3823: PUSH
3824: LD_INT 0
3826: PPUSH
3827: LD_INT 3
3829: PPUSH
3830: CALL_OW 12
3834: PUSH
3835: LD_INT 0
3837: PPUSH
3838: LD_INT 2
3840: PPUSH
3841: CALL_OW 12
3845: PUSH
3846: EMPTY
3847: LIST
3848: LIST
3849: LIST
3850: LIST
3851: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3852: LD_ADDR_OWVAR 27
3856: PUSH
3857: LD_INT 1
3859: PPUSH
3860: LD_INT 2
3862: PPUSH
3863: CALL_OW 12
3867: ST_TO_ADDR
// hc_class = 1 ;
3868: LD_ADDR_OWVAR 28
3872: PUSH
3873: LD_INT 1
3875: ST_TO_ADDR
// un = CreateHuman ;
3876: LD_ADDR_VAR 0 6
3880: PUSH
3881: CALL_OW 44
3885: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU1 ) ;
3886: LD_VAR 0 6
3890: PPUSH
3891: LD_INT 209
3893: PPUSH
3894: CALL_OW 52
// l = l + 1 ;
3898: LD_ADDR_VAR 0 7
3902: PUSH
3903: LD_VAR 0 7
3907: PUSH
3908: LD_INT 1
3910: PLUS
3911: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] + 1 ;
3912: LD_VAR 0 7
3916: PUSH
3917: LD_INT 2
3919: PUSH
3920: LD_INT 3
3922: PUSH
3923: LD_INT 3
3925: PUSH
3926: EMPTY
3927: LIST
3928: LIST
3929: LIST
3930: PUSH
3931: LD_OWVAR 67
3935: ARRAY
3936: PUSH
3937: LD_INT 1
3939: PLUS
3940: EQUAL
3941: IFFALSE 3740
// end ; end ;
3943: GO 3714
3945: POP
3946: POP
// for i in armouryRU2 do
3947: LD_ADDR_VAR 0 5
3951: PUSH
3952: LD_INT 856
3954: PUSH
3955: FOR_IN
3956: IFFALSE 4186
// begin l = 0 ;
3958: LD_ADDR_VAR 0 7
3962: PUSH
3963: LD_INT 0
3965: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3966: LD_VAR 0 5
3970: PPUSH
3971: CALL_OW 310
3975: PUSH
3976: LD_INT 0
3978: EQUAL
3979: IFFALSE 4184
// begin repeat begin uc_side = 6 ;
3981: LD_ADDR_OWVAR 20
3985: PUSH
3986: LD_INT 6
3988: ST_TO_ADDR
// uc_nation = 3 ;
3989: LD_ADDR_OWVAR 21
3993: PUSH
3994: LD_INT 3
3996: ST_TO_ADDR
// hc_gallery =  ;
3997: LD_ADDR_OWVAR 33
4001: PUSH
4002: LD_STRING 
4004: ST_TO_ADDR
// hc_name =  ;
4005: LD_ADDR_OWVAR 26
4009: PUSH
4010: LD_STRING 
4012: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4013: LD_ADDR_OWVAR 29
4017: PUSH
4018: LD_INT 9
4020: PPUSH
4021: LD_INT 11
4023: PPUSH
4024: CALL_OW 12
4028: PUSH
4029: LD_INT 10
4031: PPUSH
4032: LD_INT 12
4034: PPUSH
4035: CALL_OW 12
4039: PUSH
4040: EMPTY
4041: LIST
4042: LIST
4043: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4044: LD_ADDR_OWVAR 31
4048: PUSH
4049: LD_VAR 0 8
4053: PUSH
4054: LD_INT 1
4056: PPUSH
4057: LD_INT 4
4059: PPUSH
4060: CALL_OW 12
4064: PUSH
4065: LD_INT 0
4067: PPUSH
4068: LD_INT 3
4070: PPUSH
4071: CALL_OW 12
4075: PUSH
4076: LD_INT 0
4078: PPUSH
4079: LD_INT 2
4081: PPUSH
4082: CALL_OW 12
4086: PUSH
4087: EMPTY
4088: LIST
4089: LIST
4090: LIST
4091: LIST
4092: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4093: LD_ADDR_OWVAR 27
4097: PUSH
4098: LD_INT 1
4100: PPUSH
4101: LD_INT 2
4103: PPUSH
4104: CALL_OW 12
4108: ST_TO_ADDR
// hc_class = 1 ;
4109: LD_ADDR_OWVAR 28
4113: PUSH
4114: LD_INT 1
4116: ST_TO_ADDR
// un = CreateHuman ;
4117: LD_ADDR_VAR 0 6
4121: PUSH
4122: CALL_OW 44
4126: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU2 ) ;
4127: LD_VAR 0 6
4131: PPUSH
4132: LD_INT 856
4134: PPUSH
4135: CALL_OW 52
// l = l + 1 ;
4139: LD_ADDR_VAR 0 7
4143: PUSH
4144: LD_VAR 0 7
4148: PUSH
4149: LD_INT 1
4151: PLUS
4152: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] + 1 ;
4153: LD_VAR 0 7
4157: PUSH
4158: LD_INT 2
4160: PUSH
4161: LD_INT 3
4163: PUSH
4164: LD_INT 3
4166: PUSH
4167: EMPTY
4168: LIST
4169: LIST
4170: LIST
4171: PUSH
4172: LD_OWVAR 67
4176: ARRAY
4177: PUSH
4178: LD_INT 1
4180: PLUS
4181: EQUAL
4182: IFFALSE 3981
// end ; end ;
4184: GO 3955
4186: POP
4187: POP
// for i in armouryRU3 do
4188: LD_ADDR_VAR 0 5
4192: PUSH
4193: LD_INT 289
4195: PUSH
4196: FOR_IN
4197: IFFALSE 4423
// begin l = 0 ;
4199: LD_ADDR_VAR 0 7
4203: PUSH
4204: LD_INT 0
4206: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4207: LD_VAR 0 5
4211: PPUSH
4212: CALL_OW 310
4216: PUSH
4217: LD_INT 0
4219: EQUAL
4220: IFFALSE 4421
// begin repeat begin uc_side = 5 ;
4222: LD_ADDR_OWVAR 20
4226: PUSH
4227: LD_INT 5
4229: ST_TO_ADDR
// uc_nation = 3 ;
4230: LD_ADDR_OWVAR 21
4234: PUSH
4235: LD_INT 3
4237: ST_TO_ADDR
// hc_gallery =  ;
4238: LD_ADDR_OWVAR 33
4242: PUSH
4243: LD_STRING 
4245: ST_TO_ADDR
// hc_name =  ;
4246: LD_ADDR_OWVAR 26
4250: PUSH
4251: LD_STRING 
4253: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4254: LD_ADDR_OWVAR 29
4258: PUSH
4259: LD_INT 9
4261: PPUSH
4262: LD_INT 11
4264: PPUSH
4265: CALL_OW 12
4269: PUSH
4270: LD_INT 10
4272: PPUSH
4273: LD_INT 12
4275: PPUSH
4276: CALL_OW 12
4280: PUSH
4281: EMPTY
4282: LIST
4283: LIST
4284: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4285: LD_ADDR_OWVAR 31
4289: PUSH
4290: LD_VAR 0 8
4294: PUSH
4295: LD_INT 1
4297: PPUSH
4298: LD_INT 4
4300: PPUSH
4301: CALL_OW 12
4305: PUSH
4306: LD_INT 0
4308: PPUSH
4309: LD_INT 3
4311: PPUSH
4312: CALL_OW 12
4316: PUSH
4317: LD_INT 0
4319: PPUSH
4320: LD_INT 2
4322: PPUSH
4323: CALL_OW 12
4327: PUSH
4328: EMPTY
4329: LIST
4330: LIST
4331: LIST
4332: LIST
4333: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4334: LD_ADDR_OWVAR 27
4338: PUSH
4339: LD_INT 1
4341: PPUSH
4342: LD_INT 2
4344: PPUSH
4345: CALL_OW 12
4349: ST_TO_ADDR
// hc_class = 1 ;
4350: LD_ADDR_OWVAR 28
4354: PUSH
4355: LD_INT 1
4357: ST_TO_ADDR
// un = CreateHuman ;
4358: LD_ADDR_VAR 0 6
4362: PUSH
4363: CALL_OW 44
4367: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU3 ) ;
4368: LD_VAR 0 6
4372: PPUSH
4373: LD_INT 289
4375: PPUSH
4376: CALL_OW 52
// l = l + 1 ;
4380: LD_ADDR_VAR 0 7
4384: PUSH
4385: LD_VAR 0 7
4389: PUSH
4390: LD_INT 1
4392: PLUS
4393: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4394: LD_VAR 0 7
4398: PUSH
4399: LD_INT 2
4401: PUSH
4402: LD_INT 3
4404: PUSH
4405: LD_INT 3
4407: PUSH
4408: EMPTY
4409: LIST
4410: LIST
4411: LIST
4412: PUSH
4413: LD_OWVAR 67
4417: ARRAY
4418: EQUAL
4419: IFFALSE 4222
// end ; end ;
4421: GO 4196
4423: POP
4424: POP
// for i in armouryRU4 do
4425: LD_ADDR_VAR 0 5
4429: PUSH
4430: LD_INT 295
4432: PUSH
4433: FOR_IN
4434: IFFALSE 4660
// begin l = 0 ;
4436: LD_ADDR_VAR 0 7
4440: PUSH
4441: LD_INT 0
4443: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4444: LD_VAR 0 5
4448: PPUSH
4449: CALL_OW 310
4453: PUSH
4454: LD_INT 0
4456: EQUAL
4457: IFFALSE 4658
// begin repeat begin uc_side = 5 ;
4459: LD_ADDR_OWVAR 20
4463: PUSH
4464: LD_INT 5
4466: ST_TO_ADDR
// uc_nation = 3 ;
4467: LD_ADDR_OWVAR 21
4471: PUSH
4472: LD_INT 3
4474: ST_TO_ADDR
// hc_gallery =  ;
4475: LD_ADDR_OWVAR 33
4479: PUSH
4480: LD_STRING 
4482: ST_TO_ADDR
// hc_name =  ;
4483: LD_ADDR_OWVAR 26
4487: PUSH
4488: LD_STRING 
4490: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4491: LD_ADDR_OWVAR 29
4495: PUSH
4496: LD_INT 9
4498: PPUSH
4499: LD_INT 11
4501: PPUSH
4502: CALL_OW 12
4506: PUSH
4507: LD_INT 10
4509: PPUSH
4510: LD_INT 12
4512: PPUSH
4513: CALL_OW 12
4517: PUSH
4518: EMPTY
4519: LIST
4520: LIST
4521: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4522: LD_ADDR_OWVAR 31
4526: PUSH
4527: LD_VAR 0 8
4531: PUSH
4532: LD_INT 1
4534: PPUSH
4535: LD_INT 4
4537: PPUSH
4538: CALL_OW 12
4542: PUSH
4543: LD_INT 0
4545: PPUSH
4546: LD_INT 3
4548: PPUSH
4549: CALL_OW 12
4553: PUSH
4554: LD_INT 0
4556: PPUSH
4557: LD_INT 2
4559: PPUSH
4560: CALL_OW 12
4564: PUSH
4565: EMPTY
4566: LIST
4567: LIST
4568: LIST
4569: LIST
4570: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4571: LD_ADDR_OWVAR 27
4575: PUSH
4576: LD_INT 1
4578: PPUSH
4579: LD_INT 2
4581: PPUSH
4582: CALL_OW 12
4586: ST_TO_ADDR
// hc_class = 1 ;
4587: LD_ADDR_OWVAR 28
4591: PUSH
4592: LD_INT 1
4594: ST_TO_ADDR
// un = CreateHuman ;
4595: LD_ADDR_VAR 0 6
4599: PUSH
4600: CALL_OW 44
4604: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU4 ) ;
4605: LD_VAR 0 6
4609: PPUSH
4610: LD_INT 295
4612: PPUSH
4613: CALL_OW 52
// l = l + 1 ;
4617: LD_ADDR_VAR 0 7
4621: PUSH
4622: LD_VAR 0 7
4626: PUSH
4627: LD_INT 1
4629: PLUS
4630: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4631: LD_VAR 0 7
4635: PUSH
4636: LD_INT 2
4638: PUSH
4639: LD_INT 3
4641: PUSH
4642: LD_INT 3
4644: PUSH
4645: EMPTY
4646: LIST
4647: LIST
4648: LIST
4649: PUSH
4650: LD_OWVAR 67
4654: ARRAY
4655: EQUAL
4656: IFFALSE 4459
// end ; end ;
4658: GO 4433
4660: POP
4661: POP
// for i in armouryRU5 do
4662: LD_ADDR_VAR 0 5
4666: PUSH
4667: LD_INT 276
4669: PUSH
4670: FOR_IN
4671: IFFALSE 4897
// begin l = 0 ;
4673: LD_ADDR_VAR 0 7
4677: PUSH
4678: LD_INT 0
4680: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4681: LD_VAR 0 5
4685: PPUSH
4686: CALL_OW 310
4690: PUSH
4691: LD_INT 0
4693: EQUAL
4694: IFFALSE 4895
// begin repeat begin uc_side = 5 ;
4696: LD_ADDR_OWVAR 20
4700: PUSH
4701: LD_INT 5
4703: ST_TO_ADDR
// uc_nation = 3 ;
4704: LD_ADDR_OWVAR 21
4708: PUSH
4709: LD_INT 3
4711: ST_TO_ADDR
// hc_gallery =  ;
4712: LD_ADDR_OWVAR 33
4716: PUSH
4717: LD_STRING 
4719: ST_TO_ADDR
// hc_name =  ;
4720: LD_ADDR_OWVAR 26
4724: PUSH
4725: LD_STRING 
4727: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4728: LD_ADDR_OWVAR 29
4732: PUSH
4733: LD_INT 9
4735: PPUSH
4736: LD_INT 11
4738: PPUSH
4739: CALL_OW 12
4743: PUSH
4744: LD_INT 10
4746: PPUSH
4747: LD_INT 12
4749: PPUSH
4750: CALL_OW 12
4754: PUSH
4755: EMPTY
4756: LIST
4757: LIST
4758: ST_TO_ADDR
// hc_skills = [ SolLevel , Rand ( 1 , 4 ) , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) ] ;
4759: LD_ADDR_OWVAR 31
4763: PUSH
4764: LD_VAR 0 8
4768: PUSH
4769: LD_INT 1
4771: PPUSH
4772: LD_INT 4
4774: PPUSH
4775: CALL_OW 12
4779: PUSH
4780: LD_INT 0
4782: PPUSH
4783: LD_INT 3
4785: PPUSH
4786: CALL_OW 12
4790: PUSH
4791: LD_INT 0
4793: PPUSH
4794: LD_INT 2
4796: PPUSH
4797: CALL_OW 12
4801: PUSH
4802: EMPTY
4803: LIST
4804: LIST
4805: LIST
4806: LIST
4807: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4808: LD_ADDR_OWVAR 27
4812: PUSH
4813: LD_INT 1
4815: PPUSH
4816: LD_INT 2
4818: PPUSH
4819: CALL_OW 12
4823: ST_TO_ADDR
// hc_class = 1 ;
4824: LD_ADDR_OWVAR 28
4828: PUSH
4829: LD_INT 1
4831: ST_TO_ADDR
// un = CreateHuman ;
4832: LD_ADDR_VAR 0 6
4836: PUSH
4837: CALL_OW 44
4841: ST_TO_ADDR
// PlaceHumanInUnit ( un , armouryRU5 ) ;
4842: LD_VAR 0 6
4846: PPUSH
4847: LD_INT 276
4849: PPUSH
4850: CALL_OW 52
// l = l + 1 ;
4854: LD_ADDR_VAR 0 7
4858: PUSH
4859: LD_VAR 0 7
4863: PUSH
4864: LD_INT 1
4866: PLUS
4867: ST_TO_ADDR
// end until l = [ 2 , 3 , 3 ] [ Difficulty ] ;
4868: LD_VAR 0 7
4872: PUSH
4873: LD_INT 2
4875: PUSH
4876: LD_INT 3
4878: PUSH
4879: LD_INT 3
4881: PUSH
4882: EMPTY
4883: LIST
4884: LIST
4885: LIST
4886: PUSH
4887: LD_OWVAR 67
4891: ARRAY
4892: EQUAL
4893: IFFALSE 4696
// end ; end ;
4895: GO 4670
4897: POP
4898: POP
// end ; end_of_file
4899: LD_VAR 0 1
4903: RET
// export medal1 , x , Center , EndGame ; starting begin Center = 1 ;
4904: LD_ADDR_EXP 4
4908: PUSH
4909: LD_INT 1
4911: ST_TO_ADDR
// Ucieczka = false ;
4912: LD_ADDR_EXP 15
4916: PUSH
4917: LD_INT 0
4919: ST_TO_ADDR
// Escapers = 0 ;
4920: LD_ADDR_EXP 14
4924: PUSH
4925: LD_INT 0
4927: ST_TO_ADDR
// x = true ;
4928: LD_ADDR_EXP 3
4932: PUSH
4933: LD_INT 1
4935: ST_TO_ADDR
// EndGame = false ;
4936: LD_ADDR_EXP 5
4940: PUSH
4941: LD_INT 0
4943: ST_TO_ADDR
// InGameOn ;
4944: CALL_OW 8
// SetBName ( depotAM , baseterminal ) ;
4948: LD_INT 14
4950: PPUSH
4951: LD_STRING baseterminal
4953: PPUSH
4954: CALL_OW 500
// PrepareRussians ;
4958: CALL 0 0 0
// HEROES ;
4962: CALL 9929 0 0
// ComMoveToArea ( f2 , Mjrexit ) ;
4966: LD_INT 744
4968: PPUSH
4969: LD_INT 10
4971: PPUSH
4972: CALL_OW 113
// ComMoveToArea ( f1 , Nefaremexit ) ;
4976: LD_INT 727
4978: PPUSH
4979: LD_INT 11
4981: PPUSH
4982: CALL_OW 113
// wait ( 0 0$01 ) ;
4986: LD_INT 35
4988: PPUSH
4989: CALL_OW 67
// AddComExitVehicle ( Mjr ) ;
4993: LD_EXP 6
4997: PPUSH
4998: CALL_OW 181
// AddComExitVehicle ( Nefarem ) ;
5002: LD_EXP 7
5006: PPUSH
5007: CALL_OW 181
// wait ( 0 0$01 ) ;
5011: LD_INT 35
5013: PPUSH
5014: CALL_OW 67
// AddComMoveXY ( Mjr , 48 , 75 ) ;
5018: LD_EXP 6
5022: PPUSH
5023: LD_INT 48
5025: PPUSH
5026: LD_INT 75
5028: PPUSH
5029: CALL_OW 171
// AddComMoveXY ( Nefarem , 43 , 72 ) ;
5033: LD_EXP 7
5037: PPUSH
5038: LD_INT 43
5040: PPUSH
5041: LD_INT 72
5043: PPUSH
5044: CALL_OW 171
// Say ( Mjr , A1 ) ;
5048: LD_EXP 6
5052: PPUSH
5053: LD_STRING A1
5055: PPUSH
5056: CALL_OW 88
// disable ( 60 ) ;
5060: LD_INT 60
5062: DISABLE_MARKED
// disable ( 30 ) ;
5063: LD_INT 30
5065: DISABLE_MARKED
// disable ( 31 ) ;
5066: LD_INT 31
5068: DISABLE_MARKED
// disable ( 32 ) ;
5069: LD_INT 32
5071: DISABLE_MARKED
// disable ( 61 ) ;
5072: LD_INT 61
5074: DISABLE_MARKED
// disable ( 62 ) ;
5075: LD_INT 62
5077: DISABLE_MARKED
// disable ( 65 ) ;
5078: LD_INT 65
5080: DISABLE_MARKED
// disable ( 100 ) ;
5081: LD_INT 100
5083: DISABLE_MARKED
// disable ( 110 ) ;
5084: LD_INT 110
5086: DISABLE_MARKED
// disable ( 120 ) ;
5087: LD_INT 120
5089: DISABLE_MARKED
// disable ( 130 ) ;
5090: LD_INT 130
5092: DISABLE_MARKED
// disable ( 140 ) ;
5093: LD_INT 140
5095: DISABLE_MARKED
// disable ( 150 ) ;
5096: LD_INT 150
5098: DISABLE_MARKED
// disable ( 160 ) ;
5099: LD_INT 160
5101: DISABLE_MARKED
// disable ( 999 ) ;
5102: LD_INT 999
5104: DISABLE_MARKED
// end ;
5105: END
// every 1 trigger IsInArea ( Mjr , shit ) do
5106: LD_EXP 6
5110: PPUSH
5111: LD_INT 12
5113: PPUSH
5114: CALL_OW 308
5118: IFFALSE 5387
5120: GO 5122
5122: DISABLE
// begin ComExitVehicle ( Mjr ) ;
5123: LD_EXP 6
5127: PPUSH
5128: CALL_OW 121
// ComExitVehicle ( Nefarem ) ;
5132: LD_EXP 7
5136: PPUSH
5137: CALL_OW 121
// wait ( 0 0$01 ) ;
5141: LD_INT 35
5143: PPUSH
5144: CALL_OW 67
// AddComMoveXY ( Mjr , 48 , 75 ) ;
5148: LD_EXP 6
5152: PPUSH
5153: LD_INT 48
5155: PPUSH
5156: LD_INT 75
5158: PPUSH
5159: CALL_OW 171
// AddComMoveXY ( Nefarem , 43 , 72 ) ;
5163: LD_EXP 7
5167: PPUSH
5168: LD_INT 43
5170: PPUSH
5171: LD_INT 72
5173: PPUSH
5174: CALL_OW 171
// Say ( Mech1 , A2 ) ;
5178: LD_EXP 11
5182: PPUSH
5183: LD_STRING A2
5185: PPUSH
5186: CALL_OW 88
// Say ( Mjr , A3 ) ;
5190: LD_EXP 6
5194: PPUSH
5195: LD_STRING A3
5197: PPUSH
5198: CALL_OW 88
// Say ( Mech1 , A4 ) ;
5202: LD_EXP 11
5206: PPUSH
5207: LD_STRING A4
5209: PPUSH
5210: CALL_OW 88
// Say ( Mjr , A5 ) ;
5214: LD_EXP 6
5218: PPUSH
5219: LD_STRING A5
5221: PPUSH
5222: CALL_OW 88
// Say ( DowAM , A6 ) ;
5226: LD_EXP 12
5230: PPUSH
5231: LD_STRING A6
5233: PPUSH
5234: CALL_OW 88
// Say ( Mjr , A7 ) ;
5238: LD_EXP 6
5242: PPUSH
5243: LD_STRING A7
5245: PPUSH
5246: CALL_OW 88
// Say ( DowAM , A8 ) ;
5250: LD_EXP 12
5254: PPUSH
5255: LD_STRING A8
5257: PPUSH
5258: CALL_OW 88
// Say ( Mjr , A9 ) ;
5262: LD_EXP 6
5266: PPUSH
5267: LD_STRING A9
5269: PPUSH
5270: CALL_OW 88
// Say ( DowAM , A10 ) ;
5274: LD_EXP 12
5278: PPUSH
5279: LD_STRING A10
5281: PPUSH
5282: CALL_OW 88
// Say ( Mjr , A11 ) ;
5286: LD_EXP 6
5290: PPUSH
5291: LD_STRING A11
5293: PPUSH
5294: CALL_OW 88
// ComEnterUnit ( Mjr , armouryAM1 ) ;
5298: LD_EXP 6
5302: PPUSH
5303: LD_INT 182
5305: PPUSH
5306: CALL_OW 120
// Say ( DowAM , A12 ) ;
5310: LD_EXP 12
5314: PPUSH
5315: LD_STRING A12
5317: PPUSH
5318: CALL_OW 88
// Say ( Nefarem , A13 ) ;
5322: LD_EXP 7
5326: PPUSH
5327: LD_STRING A13
5329: PPUSH
5330: CALL_OW 88
// Say ( DowAM , A14 ) ;
5334: LD_EXP 12
5338: PPUSH
5339: LD_STRING A14
5341: PPUSH
5342: CALL_OW 88
// Say ( Nefarem , A15 ) ;
5346: LD_EXP 7
5350: PPUSH
5351: LD_STRING A15
5353: PPUSH
5354: CALL_OW 88
// InGameOff ;
5358: CALL_OW 9
// Center = 0 ;
5362: LD_ADDR_EXP 4
5366: PUSH
5367: LD_INT 0
5369: ST_TO_ADDR
// ChangeMissionObjectives ( M1 ) ;
5370: LD_STRING M1
5372: PPUSH
5373: CALL_OW 337
// SaveForQuickRestart ;
5377: CALL_OW 22
// enable ( 100 ) ;
5381: LD_INT 100
5383: ENABLE_MARKED
// enable ( 110 ) ;
5384: LD_INT 110
5386: ENABLE_MARKED
// end ;
5387: END
// every 1 1$20 marked 110 do var vehicles , i ;
5388: GO 5390
5390: DISABLE
5391: LD_INT 0
5393: PPUSH
5394: PPUSH
// begin vehicles := FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
5395: LD_ADDR_VAR 0 1
5399: PUSH
5400: LD_INT 22
5402: PUSH
5403: LD_INT 6
5405: PUSH
5406: EMPTY
5407: LIST
5408: LIST
5409: PUSH
5410: LD_INT 21
5412: PUSH
5413: LD_INT 2
5415: PUSH
5416: EMPTY
5417: LIST
5418: LIST
5419: PUSH
5420: LD_INT 33
5422: PUSH
5423: LD_INT 1
5425: PUSH
5426: EMPTY
5427: LIST
5428: LIST
5429: PUSH
5430: EMPTY
5431: LIST
5432: LIST
5433: LIST
5434: PPUSH
5435: CALL_OW 69
5439: ST_TO_ADDR
// ComMoveXY ( vehicles , 80 , 144 ) ;
5440: LD_VAR 0 1
5444: PPUSH
5445: LD_INT 80
5447: PPUSH
5448: LD_INT 144
5450: PPUSH
5451: CALL_OW 111
// if Difficulty = 1 then
5455: LD_OWVAR 67
5459: PUSH
5460: LD_INT 1
5462: EQUAL
5463: IFFALSE 5474
// begin wait ( 0 0$40 ) ;
5465: LD_INT 1400
5467: PPUSH
5468: CALL_OW 67
// end else
5472: GO 5510
// if Difficulty = 2 then
5474: LD_OWVAR 67
5478: PUSH
5479: LD_INT 2
5481: EQUAL
5482: IFFALSE 5493
// begin wait ( 0 0$50 ) ;
5484: LD_INT 1750
5486: PPUSH
5487: CALL_OW 67
// end else
5491: GO 5510
// if Difficulty = 3 then
5493: LD_OWVAR 67
5497: PUSH
5498: LD_INT 3
5500: EQUAL
5501: IFFALSE 5510
// begin wait ( 1 1$10 ) ;
5503: LD_INT 2450
5505: PPUSH
5506: CALL_OW 67
// end ; wsparcie ;
5510: CALL 10819 0 0
// DialogueOn ;
5514: CALL_OW 6
// Say ( Nefarem , B1 ) ;
5518: LD_EXP 7
5522: PPUSH
5523: LD_STRING B1
5525: PPUSH
5526: CALL_OW 88
// SayRadio ( dowRU1 , B2 ) ;
5530: LD_EXP 8
5534: PPUSH
5535: LD_STRING B2
5537: PPUSH
5538: CALL_OW 94
// Say ( Nefarem , B3 ) ;
5542: LD_EXP 7
5546: PPUSH
5547: LD_STRING B3
5549: PPUSH
5550: CALL_OW 88
// Say ( mech1 , B4 ) ;
5554: LD_EXP 11
5558: PPUSH
5559: LD_STRING B4
5561: PPUSH
5562: CALL_OW 88
// Say ( Nefarem , B5 ) ;
5566: LD_EXP 7
5570: PPUSH
5571: LD_STRING B5
5573: PPUSH
5574: CALL_OW 88
// Say ( mech1 , B6 ) ;
5578: LD_EXP 11
5582: PPUSH
5583: LD_STRING B6
5585: PPUSH
5586: CALL_OW 88
// DialogueOff ;
5590: CALL_OW 7
// case query ( czestotliwosc ) of 1 :
5594: LD_STRING czestotliwosc
5596: PPUSH
5597: CALL_OW 97
5601: PUSH
5602: LD_INT 1
5604: DOUBLE
5605: EQUAL
5606: IFTRUE 5610
5608: GO 5613
5610: POP
// begin end ; end ;
5611: GO 5614
5613: POP
// ChangeMissionObjectives ( M2 ) ;
5614: LD_STRING M2
5616: PPUSH
5617: CALL_OW 337
// enable ( 120 ) ;
5621: LD_INT 120
5623: ENABLE_MARKED
// wait ( 0 0$15 ) ;
5624: LD_INT 525
5626: PPUSH
5627: CALL_OW 67
// enable ( 65 ) ;
5631: LD_INT 65
5633: ENABLE_MARKED
// end ;
5634: PPOPN 2
5636: END
// every 0 0$01 trigger GetTech ( tech_Opto1 , 4 ) = state_researched do
5637: LD_INT 60
5639: PPUSH
5640: LD_INT 4
5642: PPUSH
5643: CALL_OW 321
5647: PUSH
5648: LD_INT 2
5650: EQUAL
5651: IFFALSE 5669
5653: GO 5655
5655: DISABLE
// begin SetTech ( 4 , 15 , state_enabled ) ;
5656: LD_INT 4
5658: PPUSH
5659: LD_INT 15
5661: PPUSH
5662: LD_INT 1
5664: PPUSH
5665: CALL_OW 322
// end ;
5669: END
// on BuildingComplete ( building ) do var SoldierList , MechList , DocList ;
5670: LD_INT 0
5672: PPUSH
5673: PPUSH
5674: PPUSH
// begin MechList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 3 ] ] ] ) ;
5675: LD_ADDR_VAR 0 3
5679: PUSH
5680: LD_INT 22
5682: PUSH
5683: LD_INT 4
5685: PUSH
5686: EMPTY
5687: LIST
5688: LIST
5689: PUSH
5690: LD_INT 25
5692: PUSH
5693: LD_INT 3
5695: PUSH
5696: EMPTY
5697: LIST
5698: LIST
5699: PUSH
5700: EMPTY
5701: LIST
5702: LIST
5703: PUSH
5704: EMPTY
5705: LIST
5706: PPUSH
5707: CALL_OW 69
5711: ST_TO_ADDR
// DocList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 4 ] ] ] ) ;
5712: LD_ADDR_VAR 0 4
5716: PUSH
5717: LD_INT 22
5719: PUSH
5720: LD_INT 4
5722: PUSH
5723: EMPTY
5724: LIST
5725: LIST
5726: PUSH
5727: LD_INT 25
5729: PUSH
5730: LD_INT 4
5732: PUSH
5733: EMPTY
5734: LIST
5735: LIST
5736: PUSH
5737: EMPTY
5738: LIST
5739: LIST
5740: PUSH
5741: EMPTY
5742: LIST
5743: PPUSH
5744: CALL_OW 69
5748: ST_TO_ADDR
// if ( GetSide ( building ) = 4 ) and ( GetBType ( building ) = b_control_tower ) and x = true and Researched ( 4 , tech_Opto1 ) then
5749: LD_VAR 0 1
5753: PPUSH
5754: CALL_OW 255
5758: PUSH
5759: LD_INT 4
5761: EQUAL
5762: PUSH
5763: LD_VAR 0 1
5767: PPUSH
5768: CALL_OW 266
5772: PUSH
5773: LD_INT 36
5775: EQUAL
5776: AND
5777: PUSH
5778: LD_EXP 3
5782: PUSH
5783: LD_INT 1
5785: EQUAL
5786: AND
5787: PUSH
5788: LD_INT 4
5790: PPUSH
5791: LD_INT 60
5793: PPUSH
5794: CALL_OW 325
5798: AND
5799: IFFALSE 5968
// begin x = false ;
5801: LD_ADDR_EXP 3
5805: PUSH
5806: LD_INT 0
5808: ST_TO_ADDR
// DialogueOn ;
5809: CALL_OW 6
// if MechList >= 1 then
5813: LD_VAR 0 3
5817: PUSH
5818: LD_INT 1
5820: GREATEREQUAL
5821: IFFALSE 5841
// begin Say ( MechList [ 1 ] , D1 ) ;
5823: LD_VAR 0 3
5827: PUSH
5828: LD_INT 1
5830: ARRAY
5831: PPUSH
5832: LD_STRING D1
5834: PPUSH
5835: CALL_OW 88
// end else
5839: GO 5867
// if DocList >= 1 then
5841: LD_VAR 0 4
5845: PUSH
5846: LD_INT 1
5848: GREATEREQUAL
5849: IFFALSE 5867
// begin Say ( DocList [ 1 ] , D1 ) ;
5851: LD_VAR 0 4
5855: PUSH
5856: LD_INT 1
5858: ARRAY
5859: PPUSH
5860: LD_STRING D1
5862: PPUSH
5863: CALL_OW 88
// end ; SayRadio ( dowRU1 , D2 ) ;
5867: LD_EXP 8
5871: PPUSH
5872: LD_STRING D2
5874: PPUSH
5875: CALL_OW 94
// Say ( Nefarem , D3 ) ;
5879: LD_EXP 7
5883: PPUSH
5884: LD_STRING D3
5886: PPUSH
5887: CALL_OW 88
// if MechList >= 1 then
5891: LD_VAR 0 3
5895: PUSH
5896: LD_INT 1
5898: GREATEREQUAL
5899: IFFALSE 5919
// begin Say ( MechList [ 1 ] , D4 ) ;
5901: LD_VAR 0 3
5905: PUSH
5906: LD_INT 1
5908: ARRAY
5909: PPUSH
5910: LD_STRING D4
5912: PPUSH
5913: CALL_OW 88
// end else
5917: GO 5945
// if DocList >= 1 then
5919: LD_VAR 0 4
5923: PUSH
5924: LD_INT 1
5926: GREATEREQUAL
5927: IFFALSE 5945
// begin Say ( DocList [ 1 ] , D4 ) ;
5929: LD_VAR 0 4
5933: PUSH
5934: LD_INT 1
5936: ARRAY
5937: PPUSH
5938: LD_STRING D4
5940: PPUSH
5941: CALL_OW 88
// end ; Say ( Nefarem , D5 ) ;
5945: LD_EXP 7
5949: PPUSH
5950: LD_STRING D5
5952: PPUSH
5953: CALL_OW 88
// DialogueOff ;
5957: CALL_OW 7
// ChangeMissionObjectives ( M4 ) ;
5961: LD_STRING M4
5963: PPUSH
5964: CALL_OW 337
// end ; end ;
5968: PPOPN 4
5970: END
// every 13 13$00 trigger FilterAllUnits ( [ [ f_side , 4 ] , [ f_btype , b_control_tower ] ] ) >= 1 and GetTech ( tech_Opto1 , 4 ) = state_researched do var SoldierList ;
5971: LD_INT 22
5973: PUSH
5974: LD_INT 4
5976: PUSH
5977: EMPTY
5978: LIST
5979: LIST
5980: PUSH
5981: LD_INT 30
5983: PUSH
5984: LD_INT 36
5986: PUSH
5987: EMPTY
5988: LIST
5989: LIST
5990: PUSH
5991: EMPTY
5992: LIST
5993: LIST
5994: PPUSH
5995: CALL_OW 69
5999: PUSH
6000: LD_INT 1
6002: GREATEREQUAL
6003: PUSH
6004: LD_INT 60
6006: PPUSH
6007: LD_INT 4
6009: PPUSH
6010: CALL_OW 321
6014: PUSH
6015: LD_INT 2
6017: EQUAL
6018: AND
6019: IFFALSE 6082
6021: GO 6023
6023: DISABLE
6024: LD_INT 0
6026: PPUSH
// begin SoldierList := FilterAllUnits ( [ [ f_side , 4 ] , [ f_class , 1 ] ] ) ;
6027: LD_ADDR_VAR 0 1
6031: PUSH
6032: LD_INT 22
6034: PUSH
6035: LD_INT 4
6037: PUSH
6038: EMPTY
6039: LIST
6040: LIST
6041: PUSH
6042: LD_INT 25
6044: PUSH
6045: LD_INT 1
6047: PUSH
6048: EMPTY
6049: LIST
6050: LIST
6051: PUSH
6052: EMPTY
6053: LIST
6054: LIST
6055: PPUSH
6056: CALL_OW 69
6060: ST_TO_ADDR
// SayRadio ( SoldierList [ 1 ] , I1 ) ;
6061: LD_VAR 0 1
6065: PUSH
6066: LD_INT 1
6068: ARRAY
6069: PPUSH
6070: LD_STRING I1
6072: PPUSH
6073: CALL_OW 94
// enable ;
6077: ENABLE
// wsparcie ;
6078: CALL 10819 0 0
// end ;
6082: PPOPN 1
6084: END
// every 0 0$01 trigger GetTech ( tech_Opto1 , 4 ) = state_researched do
6085: LD_INT 60
6087: PPUSH
6088: LD_INT 4
6090: PPUSH
6091: CALL_OW 321
6095: PUSH
6096: LD_INT 2
6098: EQUAL
6099: IFFALSE 6117
6101: GO 6103
6103: DISABLE
// begin SetTech ( tech_RemCont , 4 , state_enabled ) ;
6104: LD_INT 15
6106: PPUSH
6107: LD_INT 4
6109: PPUSH
6110: LD_INT 1
6112: PPUSH
6113: CALL_OW 322
// end ;
6117: END
// every 6 6$00 marked 120 do
6118: GO 6120
6120: DISABLE
// begin dialogueOn ;
6121: CALL_OW 6
// PlaceUnitArea ( mechAM , AreaAdditional , false ) ;
6125: LD_EXP 10
6129: PPUSH
6130: LD_INT 2
6132: PPUSH
6133: LD_INT 0
6135: PPUSH
6136: CALL_OW 49
// ComHold ( mechAM ) ;
6140: LD_EXP 10
6144: PPUSH
6145: CALL_OW 140
// SayRadio ( mechAM , C1 ) ;
6149: LD_EXP 10
6153: PPUSH
6154: LD_STRING C1
6156: PPUSH
6157: CALL_OW 94
// SayRadio ( Nefarem , C2 ) ;
6161: LD_EXP 7
6165: PPUSH
6166: LD_STRING C2
6168: PPUSH
6169: CALL_OW 94
// SayRadio ( mechAM , C3 ) ;
6173: LD_EXP 10
6177: PPUSH
6178: LD_STRING C3
6180: PPUSH
6181: CALL_OW 94
// SayRadio ( Nefarem , C4 ) ;
6185: LD_EXP 7
6189: PPUSH
6190: LD_STRING C4
6192: PPUSH
6193: CALL_OW 94
// SayRadio ( mechAM , C5 ) ;
6197: LD_EXP 10
6201: PPUSH
6202: LD_STRING C5
6204: PPUSH
6205: CALL_OW 94
// SayRadio ( Nefarem , C6 ) ;
6209: LD_EXP 7
6213: PPUSH
6214: LD_STRING C6
6216: PPUSH
6217: CALL_OW 94
// dialogueOff ;
6221: CALL_OW 7
// ChangeMissionObjectives ( M3 ) ;
6225: LD_STRING M3
6227: PPUSH
6228: CALL_OW 337
// enable ( 999 ) ;
6232: LD_INT 999
6234: ENABLE_MARKED
// enable ( 150 ) ;
6235: LD_INT 150
6237: ENABLE_MARKED
// end ;
6238: END
// every 0 0$01 marked 999 do var list ;
6239: GO 6241
6241: DISABLE
6242: LD_INT 0
6244: PPUSH
// begin list = FilterUnitsInArea ( Freeman , [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) ;
6245: LD_ADDR_VAR 0 1
6249: PUSH
6250: LD_INT 18
6252: PPUSH
6253: LD_INT 22
6255: PUSH
6256: LD_INT 4
6258: PUSH
6259: EMPTY
6260: LIST
6261: LIST
6262: PUSH
6263: LD_INT 21
6265: PUSH
6266: LD_INT 1
6268: PUSH
6269: EMPTY
6270: LIST
6271: LIST
6272: PUSH
6273: EMPTY
6274: LIST
6275: LIST
6276: PPUSH
6277: CALL_OW 70
6281: ST_TO_ADDR
// enable ;
6282: ENABLE
// if list >= 1 then
6283: LD_VAR 0 1
6287: PUSH
6288: LD_INT 1
6290: GREATEREQUAL
6291: IFFALSE 6413
// begin DialogueON ;
6293: CALL_OW 6
// Say ( mechAM , G1 ) ;
6297: LD_EXP 10
6301: PPUSH
6302: LD_STRING G1
6304: PPUSH
6305: CALL_OW 88
// Say ( list [ 1 ] , G2 ) ;
6309: LD_VAR 0 1
6313: PUSH
6314: LD_INT 1
6316: ARRAY
6317: PPUSH
6318: LD_STRING G2
6320: PPUSH
6321: CALL_OW 88
// Say ( mechAM , G3 ) ;
6325: LD_EXP 10
6329: PPUSH
6330: LD_STRING G3
6332: PPUSH
6333: CALL_OW 88
// Say ( list [ 1 ] , G4 ) ;
6337: LD_VAR 0 1
6341: PUSH
6342: LD_INT 1
6344: ARRAY
6345: PPUSH
6346: LD_STRING G4
6348: PPUSH
6349: CALL_OW 88
// Say ( mechAM , G5 ) ;
6353: LD_EXP 10
6357: PPUSH
6358: LD_STRING G5
6360: PPUSH
6361: CALL_OW 88
// Say ( list [ 1 ] , G6 ) ;
6365: LD_VAR 0 1
6369: PUSH
6370: LD_INT 1
6372: ARRAY
6373: PPUSH
6374: LD_STRING G6
6376: PPUSH
6377: CALL_OW 88
// DialogueOff ;
6381: CALL_OW 7
// ChangeMissionObjectives ( M5 ) ;
6385: LD_STRING M5
6387: PPUSH
6388: CALL_OW 337
// SetSide ( mechAM , 4 ) ;
6392: LD_EXP 10
6396: PPUSH
6397: LD_INT 4
6399: PPUSH
6400: CALL_OW 235
// medal1 = true ;
6404: LD_ADDR_EXP 2
6408: PUSH
6409: LD_INT 1
6411: ST_TO_ADDR
// disable ;
6412: DISABLE
// end ; end ;
6413: PPOPN 1
6415: END
// every 20 20$00 marked 150 do
6416: GO 6418
6418: DISABLE
// begin if IsInArea ( mechAM , AreaAdditional ) then
6419: LD_EXP 10
6423: PPUSH
6424: LD_INT 2
6426: PPUSH
6427: CALL_OW 308
6431: IFFALSE 6504
// begin dialogueOn ;
6433: CALL_OW 6
// Say ( dowRU1 , H1 ) ;
6437: LD_EXP 8
6441: PPUSH
6442: LD_STRING H1
6444: PPUSH
6445: CALL_OW 88
// Say ( mechAM , H2 ) ;
6449: LD_EXP 10
6453: PPUSH
6454: LD_STRING H2
6456: PPUSH
6457: CALL_OW 88
// Say ( dowRU1 , H3 ) ;
6461: LD_EXP 8
6465: PPUSH
6466: LD_STRING H3
6468: PPUSH
6469: CALL_OW 88
// RemoveUnit ( mechAM ) ;
6473: LD_EXP 10
6477: PPUSH
6478: CALL_OW 64
// dialogueOff ;
6482: CALL_OW 7
// ChangeMissionObjectives ( M5 ) ;
6486: LD_STRING M5
6488: PPUSH
6489: CALL_OW 337
// medal1 = false ;
6493: LD_ADDR_EXP 2
6497: PUSH
6498: LD_INT 0
6500: ST_TO_ADDR
// disable ( 999 ) ;
6501: LD_INT 999
6503: DISABLE_MARKED
// end ; end ;
6504: END
// every 0 0$30 trigger FilterUnitsInArea ( Eng3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] ] ] ) < 13 or FilterUnitsInArea ( Eng6 , [ [ [ f_side , 6 ] , [ f_type , unit_building ] ] ] ) < 10 do var DocList , MechList ;
6505: LD_INT 6
6507: PPUSH
6508: LD_INT 22
6510: PUSH
6511: LD_INT 3
6513: PUSH
6514: EMPTY
6515: LIST
6516: LIST
6517: PUSH
6518: LD_INT 21
6520: PUSH
6521: LD_INT 3
6523: PUSH
6524: EMPTY
6525: LIST
6526: LIST
6527: PUSH
6528: EMPTY
6529: LIST
6530: LIST
6531: PUSH
6532: EMPTY
6533: LIST
6534: PPUSH
6535: CALL_OW 70
6539: PUSH
6540: LD_INT 13
6542: LESS
6543: PUSH
6544: LD_INT 7
6546: PPUSH
6547: LD_INT 22
6549: PUSH
6550: LD_INT 6
6552: PUSH
6553: EMPTY
6554: LIST
6555: LIST
6556: PUSH
6557: LD_INT 21
6559: PUSH
6560: LD_INT 3
6562: PUSH
6563: EMPTY
6564: LIST
6565: LIST
6566: PUSH
6567: EMPTY
6568: LIST
6569: LIST
6570: PUSH
6571: EMPTY
6572: LIST
6573: PPUSH
6574: CALL_OW 70
6578: PUSH
6579: LD_INT 10
6581: LESS
6582: OR
6583: IFFALSE 6759
6585: GO 6587
6587: DISABLE
6588: LD_INT 0
6590: PPUSH
6591: PPUSH
// begin MechList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 3 ] ] ] ) ;
6592: LD_ADDR_VAR 0 2
6596: PUSH
6597: LD_INT 22
6599: PUSH
6600: LD_INT 4
6602: PUSH
6603: EMPTY
6604: LIST
6605: LIST
6606: PUSH
6607: LD_INT 25
6609: PUSH
6610: LD_INT 3
6612: PUSH
6613: EMPTY
6614: LIST
6615: LIST
6616: PUSH
6617: EMPTY
6618: LIST
6619: LIST
6620: PUSH
6621: EMPTY
6622: LIST
6623: PPUSH
6624: CALL_OW 69
6628: ST_TO_ADDR
// DocList := FilterAllUnits ( [ [ [ f_side , 4 ] , [ f_class , 4 ] ] ] ) ;
6629: LD_ADDR_VAR 0 1
6633: PUSH
6634: LD_INT 22
6636: PUSH
6637: LD_INT 4
6639: PUSH
6640: EMPTY
6641: LIST
6642: LIST
6643: PUSH
6644: LD_INT 25
6646: PUSH
6647: LD_INT 4
6649: PUSH
6650: EMPTY
6651: LIST
6652: LIST
6653: PUSH
6654: EMPTY
6655: LIST
6656: LIST
6657: PUSH
6658: EMPTY
6659: LIST
6660: PPUSH
6661: CALL_OW 69
6665: ST_TO_ADDR
// if MechList >= 1 then
6666: LD_VAR 0 2
6670: PUSH
6671: LD_INT 1
6673: GREATEREQUAL
6674: IFFALSE 6694
// begin Say ( MechList [ 1 ] , E1 ) ;
6676: LD_VAR 0 2
6680: PUSH
6681: LD_INT 1
6683: ARRAY
6684: PPUSH
6685: LD_STRING E1
6687: PPUSH
6688: CALL_OW 88
// end else
6692: GO 6720
// if DocList >= 1 then
6694: LD_VAR 0 1
6698: PUSH
6699: LD_INT 1
6701: GREATEREQUAL
6702: IFFALSE 6720
// begin Say ( DocList [ 1 ] , E1 ) ;
6704: LD_VAR 0 1
6708: PUSH
6709: LD_INT 1
6711: ARRAY
6712: PPUSH
6713: LD_STRING E1
6715: PPUSH
6716: CALL_OW 88
// end ; SayRadio ( dowRU2 , E2 ) ;
6720: LD_EXP 9
6724: PPUSH
6725: LD_STRING E2
6727: PPUSH
6728: CALL_OW 94
// SayRadio ( dowRU1 , E3 ) ;
6732: LD_EXP 8
6736: PPUSH
6737: LD_STRING E3
6739: PPUSH
6740: CALL_OW 94
// SayRadio ( dowRU2 , E4 ) ;
6744: LD_EXP 9
6748: PPUSH
6749: LD_STRING E4
6751: PPUSH
6752: CALL_OW 94
// enable ( 160 ) ;
6756: LD_INT 160
6758: ENABLE_MARKED
// end ;
6759: PPOPN 2
6761: END
// every 12 12$00 marked 160 do
6762: GO 6764
6764: DISABLE
// begin enable ;
6765: ENABLE
// EnemyHelp ;
6766: CALL 13145 0 0
// end ;
6770: END
// every 0 0$01 trigger IsDead ( depotRU1 ) and IsDead ( depotRU2 ) and FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) = 0 and FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 do
6771: LD_INT 194
6773: PPUSH
6774: CALL_OW 301
6778: PUSH
6779: LD_INT 280
6781: PPUSH
6782: CALL_OW 301
6786: AND
6787: PUSH
6788: LD_INT 22
6790: PUSH
6791: LD_INT 3
6793: PUSH
6794: EMPTY
6795: LIST
6796: LIST
6797: PUSH
6798: LD_INT 21
6800: PUSH
6801: LD_INT 1
6803: PUSH
6804: EMPTY
6805: LIST
6806: LIST
6807: PUSH
6808: EMPTY
6809: LIST
6810: LIST
6811: PPUSH
6812: CALL_OW 69
6816: PUSH
6817: LD_INT 0
6819: EQUAL
6820: AND
6821: PUSH
6822: LD_INT 22
6824: PUSH
6825: LD_INT 6
6827: PUSH
6828: EMPTY
6829: LIST
6830: LIST
6831: PUSH
6832: LD_INT 21
6834: PUSH
6835: LD_INT 1
6837: PUSH
6838: EMPTY
6839: LIST
6840: LIST
6841: PUSH
6842: EMPTY
6843: LIST
6844: LIST
6845: PPUSH
6846: CALL_OW 69
6850: PUSH
6851: LD_INT 0
6853: EQUAL
6854: AND
6855: IFFALSE 6932
6857: GO 6859
6859: DISABLE
// begin Dialogueon ;
6860: CALL_OW 6
// SayRadio ( Nefarem , J1 ) ;
6864: LD_EXP 7
6868: PPUSH
6869: LD_STRING J1
6871: PPUSH
6872: CALL_OW 94
// SayRadio ( Mjr , J2 ) ;
6876: LD_EXP 6
6880: PPUSH
6881: LD_STRING J2
6883: PPUSH
6884: CALL_OW 94
// SayRadio ( Nefarem , J3 ) ;
6888: LD_EXP 7
6892: PPUSH
6893: LD_STRING J3
6895: PPUSH
6896: CALL_OW 94
// Dialogueoff ;
6900: CALL_OW 7
// ChangeMissionObjectives ( M6 ) ;
6904: LD_STRING M6
6906: PPUSH
6907: CALL_OW 337
// SetAreaMapShow ( Area10 , 1 ) ;
6911: LD_INT 5
6913: PPUSH
6914: LD_INT 1
6916: PPUSH
6917: CALL_OW 424
// EndGame = true ;
6921: LD_ADDR_EXP 5
6925: PUSH
6926: LD_INT 1
6928: ST_TO_ADDR
// disable ( 160 ) ;
6929: LD_INT 160
6931: DISABLE_MARKED
// end ;
6932: END
// every 0 0$01 trigger EndGame = true do var filter , i , tab , Units ;
6933: LD_EXP 5
6937: PUSH
6938: LD_INT 1
6940: EQUAL
6941: IFFALSE 7456
6943: GO 6945
6945: DISABLE
6946: LD_INT 0
6948: PPUSH
6949: PPUSH
6950: PPUSH
6951: PPUSH
// begin enable ;
6952: ENABLE
// if FilterUnitsInArea ( Area10 , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] , [ f_not , [ f_empty ] ] ] ) = 4 and IsInArea ( Nefarem , Area10 ) then
6953: LD_INT 5
6955: PPUSH
6956: LD_INT 22
6958: PUSH
6959: LD_INT 4
6961: PUSH
6962: EMPTY
6963: LIST
6964: LIST
6965: PUSH
6966: LD_INT 21
6968: PUSH
6969: LD_INT 2
6971: PUSH
6972: EMPTY
6973: LIST
6974: LIST
6975: PUSH
6976: LD_INT 33
6978: PUSH
6979: LD_INT 1
6981: PUSH
6982: EMPTY
6983: LIST
6984: LIST
6985: PUSH
6986: LD_INT 3
6988: PUSH
6989: LD_INT 58
6991: PUSH
6992: EMPTY
6993: LIST
6994: PUSH
6995: EMPTY
6996: LIST
6997: LIST
6998: PUSH
6999: EMPTY
7000: LIST
7001: LIST
7002: LIST
7003: LIST
7004: PPUSH
7005: CALL_OW 70
7009: PUSH
7010: LD_INT 4
7012: EQUAL
7013: PUSH
7014: LD_EXP 7
7018: PPUSH
7019: LD_INT 5
7021: PPUSH
7022: CALL_OW 308
7026: AND
7027: IFFALSE 7456
// begin SetSide ( Nefarem , 1 ) ;
7029: LD_EXP 7
7033: PPUSH
7034: LD_INT 1
7036: PPUSH
7037: CALL_OW 235
// wait ( 0 0$1 ) ;
7041: LD_INT 35
7043: PPUSH
7044: CALL_OW 67
// InGameOff ;
7048: CALL_OW 9
// Units = [ ] ;
7052: LD_ADDR_VAR 0 4
7056: PUSH
7057: EMPTY
7058: ST_TO_ADDR
// tab := [ ] ;
7059: LD_ADDR_VAR 0 3
7063: PUSH
7064: EMPTY
7065: ST_TO_ADDR
// filter := FilterUnitsInArea ( Area10 , [ [ f_side , 4 ] , [ f_type , unit_vehicle ] ] ) ;
7066: LD_ADDR_VAR 0 1
7070: PUSH
7071: LD_INT 5
7073: PPUSH
7074: LD_INT 22
7076: PUSH
7077: LD_INT 4
7079: PUSH
7080: EMPTY
7081: LIST
7082: LIST
7083: PUSH
7084: LD_INT 21
7086: PUSH
7087: LD_INT 2
7089: PUSH
7090: EMPTY
7091: LIST
7092: LIST
7093: PUSH
7094: EMPTY
7095: LIST
7096: LIST
7097: PPUSH
7098: CALL_OW 70
7102: ST_TO_ADDR
// for i in filter do
7103: LD_ADDR_VAR 0 2
7107: PUSH
7108: LD_VAR 0 1
7112: PUSH
7113: FOR_IN
7114: IFFALSE 7296
// begin tab := tab ^ [ GetChassis ( i ) , GetEngine ( i ) , GetControl ( i ) , GetWeapon ( i ) ] ;
7116: LD_ADDR_VAR 0 3
7120: PUSH
7121: LD_VAR 0 3
7125: PUSH
7126: LD_VAR 0 2
7130: PPUSH
7131: CALL_OW 265
7135: PUSH
7136: LD_VAR 0 2
7140: PPUSH
7141: CALL_OW 262
7145: PUSH
7146: LD_VAR 0 2
7150: PPUSH
7151: CALL_OW 263
7155: PUSH
7156: LD_VAR 0 2
7160: PPUSH
7161: CALL_OW 264
7165: PUSH
7166: EMPTY
7167: LIST
7168: LIST
7169: LIST
7170: LIST
7171: ADD
7172: ST_TO_ADDR
// if GetSide ( IsDrivenBy ( i ) ) = 4 then
7173: LD_VAR 0 2
7177: PPUSH
7178: CALL_OW 311
7182: PPUSH
7183: CALL_OW 255
7187: PUSH
7188: LD_INT 4
7190: EQUAL
7191: IFFALSE 7294
// begin Units = Units ^ IsDrivenBy ( i ) ;
7193: LD_ADDR_VAR 0 4
7197: PUSH
7198: LD_VAR 0 4
7202: PUSH
7203: LD_VAR 0 2
7207: PPUSH
7208: CALL_OW 311
7212: ADD
7213: ST_TO_ADDR
// AddExperience ( IsDrivenBy ( i ) , skill_combat , 4500 ) ;
7214: LD_VAR 0 2
7218: PPUSH
7219: CALL_OW 311
7223: PPUSH
7224: LD_INT 1
7226: PPUSH
7227: LD_INT 4500
7229: PPUSH
7230: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_engineering , 4500 ) ;
7234: LD_VAR 0 2
7238: PPUSH
7239: CALL_OW 311
7243: PPUSH
7244: LD_INT 2
7246: PPUSH
7247: LD_INT 4500
7249: PPUSH
7250: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_mechanical , 4000 ) ;
7254: LD_VAR 0 2
7258: PPUSH
7259: CALL_OW 311
7263: PPUSH
7264: LD_INT 3
7266: PPUSH
7267: LD_INT 4000
7269: PPUSH
7270: CALL_OW 492
// AddExperience ( IsDrivenBy ( i ) , skill_scientistic , 4000 ) ;
7274: LD_VAR 0 2
7278: PPUSH
7279: CALL_OW 311
7283: PPUSH
7284: LD_INT 4
7286: PPUSH
7287: LD_INT 4000
7289: PPUSH
7290: CALL_OW 492
// end ; end ;
7294: GO 7113
7296: POP
7297: POP
// AddExperience ( Nefarem , skill_combat , 3500 ) ;
7298: LD_EXP 7
7302: PPUSH
7303: LD_INT 1
7305: PPUSH
7306: LD_INT 3500
7308: PPUSH
7309: CALL_OW 492
// AddExperience ( Nefarem , skill_engineering , 3500 ) ;
7313: LD_EXP 7
7317: PPUSH
7318: LD_INT 2
7320: PPUSH
7321: LD_INT 3500
7323: PPUSH
7324: CALL_OW 492
// AddExperience ( Nefarem , skill_mechanical , 2000 ) ;
7328: LD_EXP 7
7332: PPUSH
7333: LD_INT 3
7335: PPUSH
7336: LD_INT 2000
7338: PPUSH
7339: CALL_OW 492
// AddExperience ( Nefarem , skill_scientistic , 2000 ) ;
7343: LD_EXP 7
7347: PPUSH
7348: LD_INT 4
7350: PPUSH
7351: LD_INT 2000
7353: PPUSH
7354: CALL_OW 492
// RewardPeople ( [ Nefarem , Units ] ) ;
7358: LD_EXP 7
7362: PUSH
7363: LD_VAR 0 4
7367: PUSH
7368: EMPTY
7369: LIST
7370: LIST
7371: PPUSH
7372: CALL_OW 43
// SaveCharacters ( Units [ 1 ] , Human1 ) ;
7376: LD_VAR 0 4
7380: PUSH
7381: LD_INT 1
7383: ARRAY
7384: PPUSH
7385: LD_STRING Human1
7387: PPUSH
7388: CALL_OW 38
// SaveCharacters ( Units [ 2 ] , Human2 ) ;
7392: LD_VAR 0 4
7396: PUSH
7397: LD_INT 2
7399: ARRAY
7400: PPUSH
7401: LD_STRING Human2
7403: PPUSH
7404: CALL_OW 38
// SaveCharacters ( Units [ 3 ] , Human3 ) ;
7408: LD_VAR 0 4
7412: PUSH
7413: LD_INT 3
7415: ARRAY
7416: PPUSH
7417: LD_STRING Human3
7419: PPUSH
7420: CALL_OW 38
// SaveCharacters ( Nefarem , Nefarem ) ;
7424: LD_EXP 7
7428: PPUSH
7429: LD_STRING Nefarem
7431: PPUSH
7432: CALL_OW 38
// SaveVariable ( tab , unit_vehs ) ;
7436: LD_VAR 0 3
7440: PPUSH
7441: LD_STRING unit_vehs
7443: PPUSH
7444: CALL_OW 39
// medale ;
7448: CALL 14394 0 0
// YouWin ;
7452: CALL_OW 103
// end ; end ;
7456: PPOPN 4
7458: END
// on enterbuilding ( b , un ) do begin if b = armouryAM1 then
7459: LD_VAR 0 1
7463: PUSH
7464: LD_INT 182
7466: EQUAL
7467: IFFALSE 7535
// case un of Mjr :
7469: LD_VAR 0 2
7473: PUSH
7474: LD_EXP 6
7478: DOUBLE
7479: EQUAL
7480: IFTRUE 7484
7482: GO 7534
7484: POP
// begin wait ( 0 0$01 ) ;
7485: LD_INT 35
7487: PPUSH
7488: CALL_OW 67
// SetSide ( FilterUnitsInArea ( AMBase , [ [ f_side , 1 ] ] ) , 4 ) ;
7492: LD_INT 9
7494: PPUSH
7495: LD_INT 22
7497: PUSH
7498: LD_INT 1
7500: PUSH
7501: EMPTY
7502: LIST
7503: LIST
7504: PUSH
7505: EMPTY
7506: LIST
7507: PPUSH
7508: CALL_OW 70
7512: PPUSH
7513: LD_INT 4
7515: PPUSH
7516: CALL_OW 235
// SetSide ( AmericanPerson , 4 ) ;
7520: LD_EXP 1
7524: PPUSH
7525: LD_INT 4
7527: PPUSH
7528: CALL_OW 235
// end ; end ;
7532: GO 7535
7534: POP
// end ; end_of_file
7535: PPOPN 2
7537: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
7538: GO 7540
7540: DISABLE
7541: LD_INT 0
7543: PPUSH
7544: PPUSH
7545: PPUSH
7546: PPUSH
// begin enable ;
7547: ENABLE
// EnginerList := UnitsInside ( depotRU3 ) ;
7548: LD_ADDR_VAR 0 1
7552: PUSH
7553: LD_INT 284
7555: PPUSH
7556: CALL_OW 313
7560: ST_TO_ADDR
// buildings := FilterUnitsInArea ( Eng5 , [ [ [ f_side , 5 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7561: LD_ADDR_VAR 0 3
7565: PUSH
7566: LD_INT 8
7568: PPUSH
7569: LD_INT 22
7571: PUSH
7572: LD_INT 5
7574: PUSH
7575: EMPTY
7576: LIST
7577: LIST
7578: PUSH
7579: LD_INT 21
7581: PUSH
7582: LD_INT 3
7584: PUSH
7585: EMPTY
7586: LIST
7587: LIST
7588: PUSH
7589: LD_INT 3
7591: PUSH
7592: LD_INT 24
7594: PUSH
7595: LD_INT 1000
7597: PUSH
7598: EMPTY
7599: LIST
7600: LIST
7601: PUSH
7602: EMPTY
7603: LIST
7604: LIST
7605: PUSH
7606: EMPTY
7607: LIST
7608: LIST
7609: LIST
7610: PUSH
7611: EMPTY
7612: LIST
7613: PPUSH
7614: CALL_OW 70
7618: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 5 ] , [ f_class , 2 ] ] ] ) ;
7619: LD_ADDR_VAR 0 2
7623: PUSH
7624: LD_INT 22
7626: PUSH
7627: LD_INT 5
7629: PUSH
7630: EMPTY
7631: LIST
7632: LIST
7633: PUSH
7634: LD_INT 25
7636: PUSH
7637: LD_INT 2
7639: PUSH
7640: EMPTY
7641: LIST
7642: LIST
7643: PUSH
7644: EMPTY
7645: LIST
7646: LIST
7647: PUSH
7648: EMPTY
7649: LIST
7650: PPUSH
7651: CALL_OW 69
7655: ST_TO_ADDR
// if buildings > 0 then
7656: LD_VAR 0 3
7660: PUSH
7661: LD_INT 0
7663: GREATER
7664: IFFALSE 7847
// begin repeat buildings := FilterUnitsInArea ( Eng5 , [ [ [ f_side , 5 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7666: LD_ADDR_VAR 0 3
7670: PUSH
7671: LD_INT 8
7673: PPUSH
7674: LD_INT 22
7676: PUSH
7677: LD_INT 5
7679: PUSH
7680: EMPTY
7681: LIST
7682: LIST
7683: PUSH
7684: LD_INT 21
7686: PUSH
7687: LD_INT 3
7689: PUSH
7690: EMPTY
7691: LIST
7692: LIST
7693: PUSH
7694: LD_INT 3
7696: PUSH
7697: LD_INT 24
7699: PUSH
7700: LD_INT 1000
7702: PUSH
7703: EMPTY
7704: LIST
7705: LIST
7706: PUSH
7707: EMPTY
7708: LIST
7709: LIST
7710: PUSH
7711: EMPTY
7712: LIST
7713: LIST
7714: LIST
7715: PUSH
7716: EMPTY
7717: LIST
7718: PPUSH
7719: CALL_OW 70
7723: ST_TO_ADDR
// for i = 1 to EnginerList do
7724: LD_ADDR_VAR 0 4
7728: PUSH
7729: DOUBLE
7730: LD_INT 1
7732: DEC
7733: ST_TO_ADDR
7734: LD_VAR 0 1
7738: PUSH
7739: FOR_TO
7740: IFFALSE 7826
// begin if IsInUnit ( EnginerList [ i ] ) then
7742: LD_VAR 0 1
7746: PUSH
7747: LD_VAR 0 4
7751: ARRAY
7752: PPUSH
7753: CALL_OW 310
7757: IFFALSE 7800
// begin ComExitBuilding ( EnginerList [ i ] ) ;
7759: LD_VAR 0 1
7763: PUSH
7764: LD_VAR 0 4
7768: ARRAY
7769: PPUSH
7770: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7774: LD_VAR 0 1
7778: PUSH
7779: LD_VAR 0 4
7783: ARRAY
7784: PPUSH
7785: LD_VAR 0 3
7789: PUSH
7790: LD_INT 1
7792: ARRAY
7793: PPUSH
7794: CALL_OW 190
// end else
7798: GO 7824
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
7800: LD_VAR 0 1
7804: PUSH
7805: LD_VAR 0 4
7809: ARRAY
7810: PPUSH
7811: LD_VAR 0 3
7815: PUSH
7816: LD_INT 1
7818: ARRAY
7819: PPUSH
7820: CALL_OW 190
// end ;
7824: GO 7739
7826: POP
7827: POP
// wait ( 0 0$01 ) ;
7828: LD_INT 35
7830: PPUSH
7831: CALL_OW 67
// until buildings = 0 end else
7835: LD_VAR 0 3
7839: PUSH
7840: LD_INT 0
7842: EQUAL
7843: IFFALSE 7666
7845: GO 7897
// if buildings = 0 then
7847: LD_VAR 0 3
7851: PUSH
7852: LD_INT 0
7854: EQUAL
7855: IFFALSE 7897
// begin for i = 1 to EnginerListOutside do
7857: LD_ADDR_VAR 0 4
7861: PUSH
7862: DOUBLE
7863: LD_INT 1
7865: DEC
7866: ST_TO_ADDR
7867: LD_VAR 0 2
7871: PUSH
7872: FOR_TO
7873: IFFALSE 7895
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU3 ) ;
7875: LD_VAR 0 2
7879: PUSH
7880: LD_VAR 0 4
7884: ARRAY
7885: PPUSH
7886: LD_INT 284
7888: PPUSH
7889: CALL_OW 120
// end ;
7893: GO 7872
7895: POP
7896: POP
// end ; end ;
7897: PPOPN 4
7899: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
7900: GO 7902
7902: DISABLE
7903: LD_INT 0
7905: PPUSH
7906: PPUSH
7907: PPUSH
7908: PPUSH
// begin enable ;
7909: ENABLE
// EnginerList := UnitsInside ( depotRU2 ) ;
7910: LD_ADDR_VAR 0 1
7914: PUSH
7915: LD_INT 280
7917: PPUSH
7918: CALL_OW 313
7922: ST_TO_ADDR
// buildings := FilterUnitsInArea ( Eng6 , [ [ [ f_side , 6 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
7923: LD_ADDR_VAR 0 3
7927: PUSH
7928: LD_INT 7
7930: PPUSH
7931: LD_INT 22
7933: PUSH
7934: LD_INT 6
7936: PUSH
7937: EMPTY
7938: LIST
7939: LIST
7940: PUSH
7941: LD_INT 21
7943: PUSH
7944: LD_INT 3
7946: PUSH
7947: EMPTY
7948: LIST
7949: LIST
7950: PUSH
7951: LD_INT 3
7953: PUSH
7954: LD_INT 24
7956: PUSH
7957: LD_INT 1000
7959: PUSH
7960: EMPTY
7961: LIST
7962: LIST
7963: PUSH
7964: EMPTY
7965: LIST
7966: LIST
7967: PUSH
7968: EMPTY
7969: LIST
7970: LIST
7971: LIST
7972: PUSH
7973: EMPTY
7974: LIST
7975: PPUSH
7976: CALL_OW 70
7980: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 6 ] , [ f_class , 2 ] ] ] ) ;
7981: LD_ADDR_VAR 0 2
7985: PUSH
7986: LD_INT 22
7988: PUSH
7989: LD_INT 6
7991: PUSH
7992: EMPTY
7993: LIST
7994: LIST
7995: PUSH
7996: LD_INT 25
7998: PUSH
7999: LD_INT 2
8001: PUSH
8002: EMPTY
8003: LIST
8004: LIST
8005: PUSH
8006: EMPTY
8007: LIST
8008: LIST
8009: PUSH
8010: EMPTY
8011: LIST
8012: PPUSH
8013: CALL_OW 69
8017: ST_TO_ADDR
// if buildings > 0 then
8018: LD_VAR 0 3
8022: PUSH
8023: LD_INT 0
8025: GREATER
8026: IFFALSE 8209
// begin repeat buildings := FilterUnitsInArea ( Eng6 , [ [ [ f_side , 6 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
8028: LD_ADDR_VAR 0 3
8032: PUSH
8033: LD_INT 7
8035: PPUSH
8036: LD_INT 22
8038: PUSH
8039: LD_INT 6
8041: PUSH
8042: EMPTY
8043: LIST
8044: LIST
8045: PUSH
8046: LD_INT 21
8048: PUSH
8049: LD_INT 3
8051: PUSH
8052: EMPTY
8053: LIST
8054: LIST
8055: PUSH
8056: LD_INT 3
8058: PUSH
8059: LD_INT 24
8061: PUSH
8062: LD_INT 1000
8064: PUSH
8065: EMPTY
8066: LIST
8067: LIST
8068: PUSH
8069: EMPTY
8070: LIST
8071: LIST
8072: PUSH
8073: EMPTY
8074: LIST
8075: LIST
8076: LIST
8077: PUSH
8078: EMPTY
8079: LIST
8080: PPUSH
8081: CALL_OW 70
8085: ST_TO_ADDR
// for i = 1 to EnginerList do
8086: LD_ADDR_VAR 0 4
8090: PUSH
8091: DOUBLE
8092: LD_INT 1
8094: DEC
8095: ST_TO_ADDR
8096: LD_VAR 0 1
8100: PUSH
8101: FOR_TO
8102: IFFALSE 8188
// begin if IsInUnit ( EnginerList [ i ] ) then
8104: LD_VAR 0 1
8108: PUSH
8109: LD_VAR 0 4
8113: ARRAY
8114: PPUSH
8115: CALL_OW 310
8119: IFFALSE 8162
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8121: LD_VAR 0 1
8125: PUSH
8126: LD_VAR 0 4
8130: ARRAY
8131: PPUSH
8132: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8136: LD_VAR 0 1
8140: PUSH
8141: LD_VAR 0 4
8145: ARRAY
8146: PPUSH
8147: LD_VAR 0 3
8151: PUSH
8152: LD_INT 1
8154: ARRAY
8155: PPUSH
8156: CALL_OW 190
// end else
8160: GO 8186
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8162: LD_VAR 0 1
8166: PUSH
8167: LD_VAR 0 4
8171: ARRAY
8172: PPUSH
8173: LD_VAR 0 3
8177: PUSH
8178: LD_INT 1
8180: ARRAY
8181: PPUSH
8182: CALL_OW 190
// end ;
8186: GO 8101
8188: POP
8189: POP
// wait ( 0 0$01 ) ;
8190: LD_INT 35
8192: PPUSH
8193: CALL_OW 67
// until buildings = 0 end else
8197: LD_VAR 0 3
8201: PUSH
8202: LD_INT 0
8204: EQUAL
8205: IFFALSE 8028
8207: GO 8259
// if buildings = 0 then
8209: LD_VAR 0 3
8213: PUSH
8214: LD_INT 0
8216: EQUAL
8217: IFFALSE 8259
// begin for i = 1 to EnginerListOutside do
8219: LD_ADDR_VAR 0 4
8223: PUSH
8224: DOUBLE
8225: LD_INT 1
8227: DEC
8228: ST_TO_ADDR
8229: LD_VAR 0 2
8233: PUSH
8234: FOR_TO
8235: IFFALSE 8257
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU2 ) ;
8237: LD_VAR 0 2
8241: PUSH
8242: LD_VAR 0 4
8246: ARRAY
8247: PPUSH
8248: LD_INT 280
8250: PPUSH
8251: CALL_OW 120
// end ;
8255: GO 8234
8257: POP
8258: POP
// end ; end ;
8259: PPOPN 4
8261: END
// every 0 0$01 do var EnginerList , EnginerListOutside , buildings , i ;
8262: GO 8264
8264: DISABLE
8265: LD_INT 0
8267: PPUSH
8268: PPUSH
8269: PPUSH
8270: PPUSH
// begin enable ;
8271: ENABLE
// EnginerList := UnitsInside ( depotRU1 ) ;
8272: LD_ADDR_VAR 0 1
8276: PUSH
8277: LD_INT 194
8279: PPUSH
8280: CALL_OW 313
8284: ST_TO_ADDR
// buildings := FilterUnitsInArea ( Eng3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
8285: LD_ADDR_VAR 0 3
8289: PUSH
8290: LD_INT 6
8292: PPUSH
8293: LD_INT 22
8295: PUSH
8296: LD_INT 3
8298: PUSH
8299: EMPTY
8300: LIST
8301: LIST
8302: PUSH
8303: LD_INT 21
8305: PUSH
8306: LD_INT 3
8308: PUSH
8309: EMPTY
8310: LIST
8311: LIST
8312: PUSH
8313: LD_INT 3
8315: PUSH
8316: LD_INT 24
8318: PUSH
8319: LD_INT 1000
8321: PUSH
8322: EMPTY
8323: LIST
8324: LIST
8325: PUSH
8326: EMPTY
8327: LIST
8328: LIST
8329: PUSH
8330: EMPTY
8331: LIST
8332: LIST
8333: LIST
8334: PUSH
8335: EMPTY
8336: LIST
8337: PPUSH
8338: CALL_OW 70
8342: ST_TO_ADDR
// EnginerListOutside := FilterAllUnits ( [ [ [ f_side , 3 ] , [ f_class , 2 ] ] ] ) ;
8343: LD_ADDR_VAR 0 2
8347: PUSH
8348: LD_INT 22
8350: PUSH
8351: LD_INT 3
8353: PUSH
8354: EMPTY
8355: LIST
8356: LIST
8357: PUSH
8358: LD_INT 25
8360: PUSH
8361: LD_INT 2
8363: PUSH
8364: EMPTY
8365: LIST
8366: LIST
8367: PUSH
8368: EMPTY
8369: LIST
8370: LIST
8371: PUSH
8372: EMPTY
8373: LIST
8374: PPUSH
8375: CALL_OW 69
8379: ST_TO_ADDR
// if buildings > 0 then
8380: LD_VAR 0 3
8384: PUSH
8385: LD_INT 0
8387: GREATER
8388: IFFALSE 8571
// begin repeat buildings := FilterUnitsInArea ( Eng3 , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
8390: LD_ADDR_VAR 0 3
8394: PUSH
8395: LD_INT 6
8397: PPUSH
8398: LD_INT 22
8400: PUSH
8401: LD_INT 3
8403: PUSH
8404: EMPTY
8405: LIST
8406: LIST
8407: PUSH
8408: LD_INT 21
8410: PUSH
8411: LD_INT 3
8413: PUSH
8414: EMPTY
8415: LIST
8416: LIST
8417: PUSH
8418: LD_INT 3
8420: PUSH
8421: LD_INT 24
8423: PUSH
8424: LD_INT 1000
8426: PUSH
8427: EMPTY
8428: LIST
8429: LIST
8430: PUSH
8431: EMPTY
8432: LIST
8433: LIST
8434: PUSH
8435: EMPTY
8436: LIST
8437: LIST
8438: LIST
8439: PUSH
8440: EMPTY
8441: LIST
8442: PPUSH
8443: CALL_OW 70
8447: ST_TO_ADDR
// for i = 1 to EnginerList do
8448: LD_ADDR_VAR 0 4
8452: PUSH
8453: DOUBLE
8454: LD_INT 1
8456: DEC
8457: ST_TO_ADDR
8458: LD_VAR 0 1
8462: PUSH
8463: FOR_TO
8464: IFFALSE 8550
// begin if IsInUnit ( EnginerList [ i ] ) then
8466: LD_VAR 0 1
8470: PUSH
8471: LD_VAR 0 4
8475: ARRAY
8476: PPUSH
8477: CALL_OW 310
8481: IFFALSE 8524
// begin ComExitBuilding ( EnginerList [ i ] ) ;
8483: LD_VAR 0 1
8487: PUSH
8488: LD_VAR 0 4
8492: ARRAY
8493: PPUSH
8494: CALL_OW 122
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8498: LD_VAR 0 1
8502: PUSH
8503: LD_VAR 0 4
8507: ARRAY
8508: PPUSH
8509: LD_VAR 0 3
8513: PUSH
8514: LD_INT 1
8516: ARRAY
8517: PPUSH
8518: CALL_OW 190
// end else
8522: GO 8548
// AddComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
8524: LD_VAR 0 1
8528: PUSH
8529: LD_VAR 0 4
8533: ARRAY
8534: PPUSH
8535: LD_VAR 0 3
8539: PUSH
8540: LD_INT 1
8542: ARRAY
8543: PPUSH
8544: CALL_OW 190
// end ;
8548: GO 8463
8550: POP
8551: POP
// wait ( 0 0$01 ) ;
8552: LD_INT 35
8554: PPUSH
8555: CALL_OW 67
// until buildings = 0 end else
8559: LD_VAR 0 3
8563: PUSH
8564: LD_INT 0
8566: EQUAL
8567: IFFALSE 8390
8569: GO 8621
// if buildings = 0 then
8571: LD_VAR 0 3
8575: PUSH
8576: LD_INT 0
8578: EQUAL
8579: IFFALSE 8621
// begin for i = 1 to EnginerListOutside do
8581: LD_ADDR_VAR 0 4
8585: PUSH
8586: DOUBLE
8587: LD_INT 1
8589: DEC
8590: ST_TO_ADDR
8591: LD_VAR 0 2
8595: PUSH
8596: FOR_TO
8597: IFFALSE 8619
// begin ComEnterUnit ( EnginerListOutside [ i ] , depotRU1 ) ;
8599: LD_VAR 0 2
8603: PUSH
8604: LD_VAR 0 4
8608: ARRAY
8609: PPUSH
8610: LD_INT 194
8612: PPUSH
8613: CALL_OW 120
// end ;
8617: GO 8596
8619: POP
8620: POP
// end ; end ; end_of_file
8621: PPOPN 4
8623: END
// every 4 4$00 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 marked 100 do var Level ;
8624: LD_INT 22
8626: PUSH
8627: LD_INT 6
8629: PUSH
8630: EMPTY
8631: LIST
8632: LIST
8633: PUSH
8634: LD_INT 21
8636: PUSH
8637: LD_INT 2
8639: PUSH
8640: EMPTY
8641: LIST
8642: LIST
8643: PUSH
8644: LD_INT 33
8646: PUSH
8647: LD_INT 3
8649: PUSH
8650: EMPTY
8651: LIST
8652: LIST
8653: PUSH
8654: EMPTY
8655: LIST
8656: LIST
8657: LIST
8658: PPUSH
8659: CALL_OW 69
8663: PUSH
8664: LD_INT 0
8666: EQUAL
8667: IFFALSE 9022
8669: GO 8671
8671: DISABLE
8672: LD_INT 0
8674: PPUSH
// begin enable ;
8675: ENABLE
// Level = [ 1 , 2 , 3 ] [ Difficulty ] ;
8676: LD_ADDR_VAR 0 1
8680: PUSH
8681: LD_INT 1
8683: PUSH
8684: LD_INT 2
8686: PUSH
8687: LD_INT 3
8689: PUSH
8690: EMPTY
8691: LIST
8692: LIST
8693: LIST
8694: PUSH
8695: LD_OWVAR 67
8699: ARRAY
8700: ST_TO_ADDR
// case Level of 1 :
8701: LD_VAR 0 1
8705: PUSH
8706: LD_INT 1
8708: DOUBLE
8709: EQUAL
8710: IFTRUE 8714
8712: GO 8811
8714: POP
// begin AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
8715: LD_INT 299
8717: PPUSH
8718: LD_INT 22
8720: PPUSH
8721: LD_INT 1
8723: PPUSH
8724: LD_INT 3
8726: PPUSH
8727: LD_INT 44
8729: PPUSH
8730: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
8734: LD_INT 299
8736: PPUSH
8737: LD_INT 22
8739: PPUSH
8740: LD_INT 1
8742: PPUSH
8743: LD_INT 3
8745: PPUSH
8746: LD_INT 44
8748: PPUSH
8749: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
8753: LD_INT 299
8755: PPUSH
8756: LD_INT 21
8758: PPUSH
8759: LD_INT 1
8761: PPUSH
8762: LD_INT 3
8764: PPUSH
8765: LD_INT 42
8767: PPUSH
8768: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_medium_wheeled , engine_combustion , control_computer , ru_gatling_gun ) ;
8772: LD_INT 299
8774: PPUSH
8775: LD_INT 21
8777: PPUSH
8778: LD_INT 1
8780: PPUSH
8781: LD_INT 3
8783: PPUSH
8784: LD_INT 43
8786: PPUSH
8787: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 300 ) ;
8791: LD_INT 280
8793: PPUSH
8794: CALL_OW 274
8798: PPUSH
8799: LD_INT 1
8801: PPUSH
8802: LD_INT 300
8804: PPUSH
8805: CALL_OW 277
// end ; 2 :
8809: GO 9022
8811: LD_INT 2
8813: DOUBLE
8814: EQUAL
8815: IFTRUE 8819
8817: GO 8916
8819: POP
// begin AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gun ) ;
8820: LD_INT 299
8822: PPUSH
8823: LD_INT 23
8825: PPUSH
8826: LD_INT 1
8828: PPUSH
8829: LD_INT 3
8831: PPUSH
8832: LD_INT 44
8834: PPUSH
8835: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
8839: LD_INT 299
8841: PPUSH
8842: LD_INT 23
8844: PPUSH
8845: LD_INT 1
8847: PPUSH
8848: LD_INT 3
8850: PPUSH
8851: LD_INT 42
8853: PPUSH
8854: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gatling_gun ) ;
8858: LD_INT 299
8860: PPUSH
8861: LD_INT 23
8863: PPUSH
8864: LD_INT 1
8866: PPUSH
8867: LD_INT 3
8869: PPUSH
8870: LD_INT 43
8872: PPUSH
8873: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_wheeled , engine_combustion , control_computer , ru_gun ) ;
8877: LD_INT 299
8879: PPUSH
8880: LD_INT 23
8882: PPUSH
8883: LD_INT 1
8885: PPUSH
8886: LD_INT 3
8888: PPUSH
8889: LD_INT 44
8891: PPUSH
8892: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 400 ) ;
8896: LD_INT 280
8898: PPUSH
8899: CALL_OW 274
8903: PPUSH
8904: LD_INT 1
8906: PPUSH
8907: LD_INT 400
8909: PPUSH
8910: CALL_OW 277
// end ; 3 :
8914: GO 9022
8916: LD_INT 3
8918: DOUBLE
8919: EQUAL
8920: IFTRUE 8924
8922: GO 9021
8924: POP
// begin AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
8925: LD_INT 299
8927: PPUSH
8928: LD_INT 24
8930: PPUSH
8931: LD_INT 1
8933: PPUSH
8934: LD_INT 3
8936: PPUSH
8937: LD_INT 44
8939: PPUSH
8940: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
8944: LD_INT 299
8946: PPUSH
8947: LD_INT 24
8949: PPUSH
8950: LD_INT 1
8952: PPUSH
8953: LD_INT 3
8955: PPUSH
8956: LD_INT 46
8958: PPUSH
8959: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
8963: LD_INT 299
8965: PPUSH
8966: LD_INT 24
8968: PPUSH
8969: LD_INT 1
8971: PPUSH
8972: LD_INT 3
8974: PPUSH
8975: LD_INT 46
8977: PPUSH
8978: CALL_OW 185
// AddComConstruct ( factoryRU2 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
8982: LD_INT 299
8984: PPUSH
8985: LD_INT 24
8987: PPUSH
8988: LD_INT 1
8990: PPUSH
8991: LD_INT 3
8993: PPUSH
8994: LD_INT 43
8996: PPUSH
8997: CALL_OW 185
// SetResourceType ( GetBase ( depotRU2 ) , mat_cans , 500 ) ;
9001: LD_INT 280
9003: PPUSH
9004: CALL_OW 274
9008: PPUSH
9009: LD_INT 1
9011: PPUSH
9012: LD_INT 500
9014: PPUSH
9015: CALL_OW 277
// end ; end ;
9019: GO 9022
9021: POP
// end ;
9022: PPOPN 1
9024: END
// every 0 0$01 do var Level ;
9025: GO 9027
9027: DISABLE
9028: LD_INT 0
9030: PPUSH
// begin enable ;
9031: ENABLE
// Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
9032: LD_ADDR_VAR 0 1
9036: PUSH
9037: LD_INT 4
9039: PUSH
9040: LD_INT 4
9042: PUSH
9043: LD_INT 4
9045: PUSH
9046: EMPTY
9047: LIST
9048: LIST
9049: LIST
9050: PUSH
9051: LD_OWVAR 67
9055: ARRAY
9056: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = Level then
9057: LD_INT 22
9059: PUSH
9060: LD_INT 6
9062: PUSH
9063: EMPTY
9064: LIST
9065: LIST
9066: PUSH
9067: LD_INT 21
9069: PUSH
9070: LD_INT 2
9072: PUSH
9073: EMPTY
9074: LIST
9075: LIST
9076: PUSH
9077: LD_INT 33
9079: PUSH
9080: LD_INT 3
9082: PUSH
9083: EMPTY
9084: LIST
9085: LIST
9086: PUSH
9087: EMPTY
9088: LIST
9089: LIST
9090: LIST
9091: PPUSH
9092: CALL_OW 69
9096: PUSH
9097: LD_VAR 0 1
9101: EQUAL
9102: IFFALSE 9109
// begin enable ( 60 ) ;
9104: LD_INT 60
9106: ENABLE_MARKED
// end else
9107: GO 9157
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 then
9109: LD_INT 22
9111: PUSH
9112: LD_INT 6
9114: PUSH
9115: EMPTY
9116: LIST
9117: LIST
9118: PUSH
9119: LD_INT 21
9121: PUSH
9122: LD_INT 2
9124: PUSH
9125: EMPTY
9126: LIST
9127: LIST
9128: PUSH
9129: LD_INT 33
9131: PUSH
9132: LD_INT 3
9134: PUSH
9135: EMPTY
9136: LIST
9137: LIST
9138: PUSH
9139: EMPTY
9140: LIST
9141: LIST
9142: LIST
9143: PPUSH
9144: CALL_OW 69
9148: PUSH
9149: LD_INT 0
9151: EQUAL
9152: IFFALSE 9157
// begin disable ( 60 ) ;
9154: LD_INT 60
9156: DISABLE_MARKED
// end ; end ;
9157: PPOPN 1
9159: END
// every 0 0$2 marked 60 do var i , atakujacy , broniacy ;
9160: GO 9162
9162: DISABLE
9163: LD_INT 0
9165: PPUSH
9166: PPUSH
9167: PPUSH
// begin enable ;
9168: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
9169: LD_ADDR_VAR 0 3
9173: PUSH
9174: LD_INT 22
9176: PUSH
9177: LD_INT 4
9179: PUSH
9180: EMPTY
9181: LIST
9182: LIST
9183: PPUSH
9184: CALL_OW 69
9188: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) ;
9189: LD_ADDR_VAR 0 2
9193: PUSH
9194: LD_INT 22
9196: PUSH
9197: LD_INT 6
9199: PUSH
9200: EMPTY
9201: LIST
9202: LIST
9203: PUSH
9204: LD_INT 21
9206: PUSH
9207: LD_INT 2
9209: PUSH
9210: EMPTY
9211: LIST
9212: LIST
9213: PUSH
9214: LD_INT 33
9216: PUSH
9217: LD_INT 3
9219: PUSH
9220: EMPTY
9221: LIST
9222: LIST
9223: PUSH
9224: EMPTY
9225: LIST
9226: LIST
9227: LIST
9228: PPUSH
9229: CALL_OW 69
9233: ST_TO_ADDR
// for i in atakujacy do
9234: LD_ADDR_VAR 0 1
9238: PUSH
9239: LD_VAR 0 2
9243: PUSH
9244: FOR_IN
9245: IFFALSE 9285
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
9247: LD_VAR 0 1
9251: PPUSH
9252: LD_VAR 0 3
9256: PPUSH
9257: LD_VAR 0 1
9261: PPUSH
9262: CALL_OW 74
9266: PPUSH
9267: CALL_OW 115
// SetFuel ( i , 100 ) ;
9271: LD_VAR 0 1
9275: PPUSH
9276: LD_INT 100
9278: PPUSH
9279: CALL_OW 240
// end ;
9283: GO 9244
9285: POP
9286: POP
// end ;
9287: PPOPN 3
9289: END
// every 3 3$30 trigger FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 marked 100 do var Level ;
9290: LD_INT 22
9292: PUSH
9293: LD_INT 3
9295: PUSH
9296: EMPTY
9297: LIST
9298: LIST
9299: PUSH
9300: LD_INT 21
9302: PUSH
9303: LD_INT 2
9305: PUSH
9306: EMPTY
9307: LIST
9308: LIST
9309: PUSH
9310: LD_INT 33
9312: PUSH
9313: LD_INT 3
9315: PUSH
9316: EMPTY
9317: LIST
9318: LIST
9319: PUSH
9320: EMPTY
9321: LIST
9322: LIST
9323: LIST
9324: PPUSH
9325: CALL_OW 69
9329: PUSH
9330: LD_INT 0
9332: EQUAL
9333: IFFALSE 9688
9335: GO 9337
9337: DISABLE
9338: LD_INT 0
9340: PPUSH
// begin enable ;
9341: ENABLE
// Level = [ 1 , 2 , 3 ] [ Difficulty ] ;
9342: LD_ADDR_VAR 0 1
9346: PUSH
9347: LD_INT 1
9349: PUSH
9350: LD_INT 2
9352: PUSH
9353: LD_INT 3
9355: PUSH
9356: EMPTY
9357: LIST
9358: LIST
9359: LIST
9360: PUSH
9361: LD_OWVAR 67
9365: ARRAY
9366: ST_TO_ADDR
// case Level of 1 :
9367: LD_VAR 0 1
9371: PUSH
9372: LD_INT 1
9374: DOUBLE
9375: EQUAL
9376: IFTRUE 9380
9378: GO 9477
9380: POP
// begin AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
9381: LD_INT 255
9383: PPUSH
9384: LD_INT 22
9386: PPUSH
9387: LD_INT 1
9389: PPUSH
9390: LD_INT 3
9392: PPUSH
9393: LD_INT 44
9395: PPUSH
9396: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gun ) ;
9400: LD_INT 255
9402: PPUSH
9403: LD_INT 22
9405: PPUSH
9406: LD_INT 1
9408: PPUSH
9409: LD_INT 3
9411: PPUSH
9412: LD_INT 44
9414: PPUSH
9415: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
9419: LD_INT 255
9421: PPUSH
9422: LD_INT 22
9424: PPUSH
9425: LD_INT 1
9427: PPUSH
9428: LD_INT 3
9430: PPUSH
9431: LD_INT 42
9433: PPUSH
9434: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9438: LD_INT 255
9440: PPUSH
9441: LD_INT 22
9443: PPUSH
9444: LD_INT 1
9446: PPUSH
9447: LD_INT 3
9449: PPUSH
9450: LD_INT 43
9452: PPUSH
9453: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 300 ) ;
9457: LD_INT 194
9459: PPUSH
9460: CALL_OW 274
9464: PPUSH
9465: LD_INT 1
9467: PPUSH
9468: LD_INT 300
9470: PPUSH
9471: CALL_OW 277
// end ; 2 :
9475: GO 9688
9477: LD_INT 2
9479: DOUBLE
9480: EQUAL
9481: IFTRUE 9485
9483: GO 9582
9485: POP
// begin AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
9486: LD_INT 255
9488: PPUSH
9489: LD_INT 24
9491: PPUSH
9492: LD_INT 1
9494: PPUSH
9495: LD_INT 3
9497: PPUSH
9498: LD_INT 44
9500: PPUSH
9501: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9505: LD_INT 255
9507: PPUSH
9508: LD_INT 24
9510: PPUSH
9511: LD_INT 1
9513: PPUSH
9514: LD_INT 3
9516: PPUSH
9517: LD_INT 43
9519: PPUSH
9520: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_machine_gun ) ;
9524: LD_INT 255
9526: PPUSH
9527: LD_INT 24
9529: PPUSH
9530: LD_INT 1
9532: PPUSH
9533: LD_INT 3
9535: PPUSH
9536: LD_INT 42
9538: PPUSH
9539: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_medium_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9543: LD_INT 255
9545: PPUSH
9546: LD_INT 22
9548: PPUSH
9549: LD_INT 1
9551: PPUSH
9552: LD_INT 3
9554: PPUSH
9555: LD_INT 46
9557: PPUSH
9558: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 400 ) ;
9562: LD_INT 194
9564: PPUSH
9565: CALL_OW 274
9569: PPUSH
9570: LD_INT 1
9572: PPUSH
9573: LD_INT 400
9575: PPUSH
9576: CALL_OW 277
// end ; 3 :
9580: GO 9688
9582: LD_INT 3
9584: DOUBLE
9585: EQUAL
9586: IFTRUE 9590
9588: GO 9687
9590: POP
// begin AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gun ) ;
9591: LD_INT 255
9593: PPUSH
9594: LD_INT 24
9596: PPUSH
9597: LD_INT 1
9599: PPUSH
9600: LD_INT 3
9602: PPUSH
9603: LD_INT 44
9605: PPUSH
9606: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9610: LD_INT 255
9612: PPUSH
9613: LD_INT 24
9615: PPUSH
9616: LD_INT 1
9618: PPUSH
9619: LD_INT 3
9621: PPUSH
9622: LD_INT 46
9624: PPUSH
9625: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
9629: LD_INT 255
9631: PPUSH
9632: LD_INT 24
9634: PPUSH
9635: LD_INT 1
9637: PPUSH
9638: LD_INT 3
9640: PPUSH
9641: LD_INT 46
9643: PPUSH
9644: CALL_OW 185
// AddComConstruct ( factoryRU1 , ru_heavy_tracked , engine_combustion , control_computer , ru_gatling_gun ) ;
9648: LD_INT 255
9650: PPUSH
9651: LD_INT 24
9653: PPUSH
9654: LD_INT 1
9656: PPUSH
9657: LD_INT 3
9659: PPUSH
9660: LD_INT 43
9662: PPUSH
9663: CALL_OW 185
// SetResourceType ( GetBase ( depotRU1 ) , mat_cans , 500 ) ;
9667: LD_INT 194
9669: PPUSH
9670: CALL_OW 274
9674: PPUSH
9675: LD_INT 1
9677: PPUSH
9678: LD_INT 500
9680: PPUSH
9681: CALL_OW 277
// end ; end ;
9685: GO 9688
9687: POP
// end ;
9688: PPOPN 1
9690: END
// every 0 0$01 do var Level ;
9691: GO 9693
9693: DISABLE
9694: LD_INT 0
9696: PPUSH
// begin enable ;
9697: ENABLE
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 4 then
9698: LD_INT 22
9700: PUSH
9701: LD_INT 3
9703: PUSH
9704: EMPTY
9705: LIST
9706: LIST
9707: PUSH
9708: LD_INT 21
9710: PUSH
9711: LD_INT 2
9713: PUSH
9714: EMPTY
9715: LIST
9716: LIST
9717: PUSH
9718: LD_INT 33
9720: PUSH
9721: LD_INT 3
9723: PUSH
9724: EMPTY
9725: LIST
9726: LIST
9727: PUSH
9728: EMPTY
9729: LIST
9730: LIST
9731: LIST
9732: PPUSH
9733: CALL_OW 69
9737: PUSH
9738: LD_INT 4
9740: EQUAL
9741: IFFALSE 9748
// begin enable ( 30 ) ;
9743: LD_INT 30
9745: ENABLE_MARKED
// end else
9746: GO 9796
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) = 0 then
9748: LD_INT 22
9750: PUSH
9751: LD_INT 3
9753: PUSH
9754: EMPTY
9755: LIST
9756: LIST
9757: PUSH
9758: LD_INT 21
9760: PUSH
9761: LD_INT 2
9763: PUSH
9764: EMPTY
9765: LIST
9766: LIST
9767: PUSH
9768: LD_INT 33
9770: PUSH
9771: LD_INT 3
9773: PUSH
9774: EMPTY
9775: LIST
9776: LIST
9777: PUSH
9778: EMPTY
9779: LIST
9780: LIST
9781: LIST
9782: PPUSH
9783: CALL_OW 69
9787: PUSH
9788: LD_INT 0
9790: EQUAL
9791: IFFALSE 9796
// begin disable ( 30 ) ;
9793: LD_INT 30
9795: DISABLE_MARKED
// end ; end ;
9796: PPOPN 1
9798: END
// every 0 0$2 marked 30 do var i , atakujacy , broniacy ;
9799: GO 9801
9801: DISABLE
9802: LD_INT 0
9804: PPUSH
9805: PPUSH
9806: PPUSH
// begin enable ;
9807: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
9808: LD_ADDR_VAR 0 3
9812: PUSH
9813: LD_INT 22
9815: PUSH
9816: LD_INT 4
9818: PUSH
9819: EMPTY
9820: LIST
9821: LIST
9822: PPUSH
9823: CALL_OW 69
9827: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_Computer ] ] ) ;
9828: LD_ADDR_VAR 0 2
9832: PUSH
9833: LD_INT 22
9835: PUSH
9836: LD_INT 3
9838: PUSH
9839: EMPTY
9840: LIST
9841: LIST
9842: PUSH
9843: LD_INT 21
9845: PUSH
9846: LD_INT 2
9848: PUSH
9849: EMPTY
9850: LIST
9851: LIST
9852: PUSH
9853: LD_INT 33
9855: PUSH
9856: LD_INT 3
9858: PUSH
9859: EMPTY
9860: LIST
9861: LIST
9862: PUSH
9863: EMPTY
9864: LIST
9865: LIST
9866: LIST
9867: PPUSH
9868: CALL_OW 69
9872: ST_TO_ADDR
// for i in atakujacy do
9873: LD_ADDR_VAR 0 1
9877: PUSH
9878: LD_VAR 0 2
9882: PUSH
9883: FOR_IN
9884: IFFALSE 9924
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
9886: LD_VAR 0 1
9890: PPUSH
9891: LD_VAR 0 3
9895: PPUSH
9896: LD_VAR 0 1
9900: PPUSH
9901: CALL_OW 74
9905: PPUSH
9906: CALL_OW 115
// SetFuel ( i , 100 ) ;
9910: LD_VAR 0 1
9914: PPUSH
9915: LD_INT 100
9917: PPUSH
9918: CALL_OW 240
// end ;
9922: GO 9883
9924: POP
9925: POP
// end ; end_of_file
9926: PPOPN 3
9928: END
// export Mjr , Nefarem , dowRU1 , dowRU2 , mechAM , mech1 , DowAM ; export function HEROES ; begin
9929: LD_INT 0
9931: PPUSH
// uc_side = 4 ;
9932: LD_ADDR_OWVAR 20
9936: PUSH
9937: LD_INT 4
9939: ST_TO_ADDR
// uc_nation = 1 ;
9940: LD_ADDR_OWVAR 21
9944: PUSH
9945: LD_INT 1
9947: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
9948: LD_ADDR_EXP 7
9952: PUSH
9953: LD_STRING Nefarem
9955: PPUSH
9956: CALL_OW 34
9960: ST_TO_ADDR
// PlaceHumanInUnit ( Nefarem , f1 ) ;
9961: LD_EXP 7
9965: PPUSH
9966: LD_INT 727
9968: PPUSH
9969: CALL_OW 52
// setcargo ( f1 , mat_cans , 100 ) ;
9973: LD_INT 727
9975: PPUSH
9976: LD_INT 1
9978: PPUSH
9979: LD_INT 100
9981: PPUSH
9982: CALL_OW 290
// uc_side = 1 ;
9986: LD_ADDR_OWVAR 20
9990: PUSH
9991: LD_INT 1
9993: ST_TO_ADDR
// uc_nation = 1 ;
9994: LD_ADDR_OWVAR 21
9998: PUSH
9999: LD_INT 1
10001: ST_TO_ADDR
// Mjr := CreateCharacter ( Mjr ) ;
10002: LD_ADDR_EXP 6
10006: PUSH
10007: LD_STRING Mjr
10009: PPUSH
10010: CALL_OW 34
10014: ST_TO_ADDR
// PlaceHumanInUnit ( Mjr , f2 ) ;
10015: LD_EXP 6
10019: PPUSH
10020: LD_INT 744
10022: PPUSH
10023: CALL_OW 52
// setcargo ( f2 , mat_cans , 100 ) ;
10027: LD_INT 744
10029: PPUSH
10030: LD_INT 1
10032: PPUSH
10033: LD_INT 100
10035: PPUSH
10036: CALL_OW 290
// uc_side = 1 ;
10040: LD_ADDR_OWVAR 20
10044: PUSH
10045: LD_INT 1
10047: ST_TO_ADDR
// uc_nation = 1 ;
10048: LD_ADDR_OWVAR 21
10052: PUSH
10053: LD_INT 1
10055: ST_TO_ADDR
// hc_gallery =  ;
10056: LD_ADDR_OWVAR 33
10060: PUSH
10061: LD_STRING 
10063: ST_TO_ADDR
// hc_name =  ;
10064: LD_ADDR_OWVAR 26
10068: PUSH
10069: LD_STRING 
10071: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10072: LD_ADDR_OWVAR 29
10076: PUSH
10077: LD_INT 9
10079: PPUSH
10080: LD_INT 11
10082: PPUSH
10083: CALL_OW 12
10087: PUSH
10088: LD_INT 10
10090: PPUSH
10091: LD_INT 12
10093: PPUSH
10094: CALL_OW 12
10098: PUSH
10099: EMPTY
10100: LIST
10101: LIST
10102: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , 6 , Rand ( 0 , 4 ) ] ;
10103: LD_ADDR_OWVAR 31
10107: PUSH
10108: LD_INT 0
10110: PPUSH
10111: LD_INT 2
10113: PPUSH
10114: CALL_OW 12
10118: PUSH
10119: LD_INT 1
10121: PPUSH
10122: LD_INT 3
10124: PPUSH
10125: CALL_OW 12
10129: PUSH
10130: LD_INT 6
10132: PUSH
10133: LD_INT 0
10135: PPUSH
10136: LD_INT 4
10138: PPUSH
10139: CALL_OW 12
10143: PUSH
10144: EMPTY
10145: LIST
10146: LIST
10147: LIST
10148: LIST
10149: ST_TO_ADDR
// hc_sex = sex_male ;
10150: LD_ADDR_OWVAR 27
10154: PUSH
10155: LD_INT 1
10157: ST_TO_ADDR
// hc_class = 3 ;
10158: LD_ADDR_OWVAR 28
10162: PUSH
10163: LD_INT 3
10165: ST_TO_ADDR
// mechAM := CreateHuman ;
10166: LD_ADDR_EXP 10
10170: PUSH
10171: CALL_OW 44
10175: ST_TO_ADDR
// uc_side = 1 ;
10176: LD_ADDR_OWVAR 20
10180: PUSH
10181: LD_INT 1
10183: ST_TO_ADDR
// uc_nation = 1 ;
10184: LD_ADDR_OWVAR 21
10188: PUSH
10189: LD_INT 1
10191: ST_TO_ADDR
// hc_gallery =  ;
10192: LD_ADDR_OWVAR 33
10196: PUSH
10197: LD_STRING 
10199: ST_TO_ADDR
// hc_name =  ;
10200: LD_ADDR_OWVAR 26
10204: PUSH
10205: LD_STRING 
10207: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10208: LD_ADDR_OWVAR 29
10212: PUSH
10213: LD_INT 9
10215: PPUSH
10216: LD_INT 11
10218: PPUSH
10219: CALL_OW 12
10223: PUSH
10224: LD_INT 10
10226: PPUSH
10227: LD_INT 12
10229: PPUSH
10230: CALL_OW 12
10234: PUSH
10235: EMPTY
10236: LIST
10237: LIST
10238: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 1 , 3 ) , 5 , Rand ( 0 , 4 ) ] ;
10239: LD_ADDR_OWVAR 31
10243: PUSH
10244: LD_INT 0
10246: PPUSH
10247: LD_INT 2
10249: PPUSH
10250: CALL_OW 12
10254: PUSH
10255: LD_INT 1
10257: PPUSH
10258: LD_INT 3
10260: PPUSH
10261: CALL_OW 12
10265: PUSH
10266: LD_INT 5
10268: PUSH
10269: LD_INT 0
10271: PPUSH
10272: LD_INT 4
10274: PPUSH
10275: CALL_OW 12
10279: PUSH
10280: EMPTY
10281: LIST
10282: LIST
10283: LIST
10284: LIST
10285: ST_TO_ADDR
// hc_sex = sex_male ;
10286: LD_ADDR_OWVAR 27
10290: PUSH
10291: LD_INT 1
10293: ST_TO_ADDR
// hc_class = 3 ;
10294: LD_ADDR_OWVAR 28
10298: PUSH
10299: LD_INT 3
10301: ST_TO_ADDR
// mech1 := CreateHuman ;
10302: LD_ADDR_EXP 11
10306: PUSH
10307: CALL_OW 44
10311: ST_TO_ADDR
// PlaceUnitArea ( mech1 , spawnMech1 , false ) ;
10312: LD_EXP 11
10316: PPUSH
10317: LD_INT 17
10319: PPUSH
10320: LD_INT 0
10322: PPUSH
10323: CALL_OW 49
// uc_side = 1 ;
10327: LD_ADDR_OWVAR 20
10331: PUSH
10332: LD_INT 1
10334: ST_TO_ADDR
// uc_nation = 1 ;
10335: LD_ADDR_OWVAR 21
10339: PUSH
10340: LD_INT 1
10342: ST_TO_ADDR
// hc_gallery =  ;
10343: LD_ADDR_OWVAR 33
10347: PUSH
10348: LD_STRING 
10350: ST_TO_ADDR
// hc_name =  ;
10351: LD_ADDR_OWVAR 26
10355: PUSH
10356: LD_STRING 
10358: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10359: LD_ADDR_OWVAR 29
10363: PUSH
10364: LD_INT 9
10366: PPUSH
10367: LD_INT 11
10369: PPUSH
10370: CALL_OW 12
10374: PUSH
10375: LD_INT 10
10377: PPUSH
10378: LD_INT 12
10380: PPUSH
10381: CALL_OW 12
10385: PUSH
10386: EMPTY
10387: LIST
10388: LIST
10389: ST_TO_ADDR
// hc_skills = [ 5 , Rand ( 1 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 1 ) ] ;
10390: LD_ADDR_OWVAR 31
10394: PUSH
10395: LD_INT 5
10397: PUSH
10398: LD_INT 1
10400: PPUSH
10401: LD_INT 3
10403: PPUSH
10404: CALL_OW 12
10408: PUSH
10409: LD_INT 0
10411: PPUSH
10412: LD_INT 2
10414: PPUSH
10415: CALL_OW 12
10419: PUSH
10420: LD_INT 0
10422: PPUSH
10423: LD_INT 1
10425: PPUSH
10426: CALL_OW 12
10430: PUSH
10431: EMPTY
10432: LIST
10433: LIST
10434: LIST
10435: LIST
10436: ST_TO_ADDR
// hc_sex = sex_male ;
10437: LD_ADDR_OWVAR 27
10441: PUSH
10442: LD_INT 1
10444: ST_TO_ADDR
// hc_class = 1 ;
10445: LD_ADDR_OWVAR 28
10449: PUSH
10450: LD_INT 1
10452: ST_TO_ADDR
// dowAM := CreateHuman ;
10453: LD_ADDR_EXP 12
10457: PUSH
10458: CALL_OW 44
10462: ST_TO_ADDR
// PlaceUnitArea ( dowAM , spawnDowAM , false ) ;
10463: LD_EXP 12
10467: PPUSH
10468: LD_INT 16
10470: PPUSH
10471: LD_INT 0
10473: PPUSH
10474: CALL_OW 49
// uc_side = 3 ;
10478: LD_ADDR_OWVAR 20
10482: PUSH
10483: LD_INT 3
10485: ST_TO_ADDR
// uc_nation = 3 ;
10486: LD_ADDR_OWVAR 21
10490: PUSH
10491: LD_INT 3
10493: ST_TO_ADDR
// hc_gallery =  ;
10494: LD_ADDR_OWVAR 33
10498: PUSH
10499: LD_STRING 
10501: ST_TO_ADDR
// hc_name =  ;
10502: LD_ADDR_OWVAR 26
10506: PUSH
10507: LD_STRING 
10509: ST_TO_ADDR
// hc_importance = 100 ;
10510: LD_ADDR_OWVAR 32
10514: PUSH
10515: LD_INT 100
10517: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10518: LD_ADDR_OWVAR 29
10522: PUSH
10523: LD_INT 9
10525: PPUSH
10526: LD_INT 11
10528: PPUSH
10529: CALL_OW 12
10533: PUSH
10534: LD_INT 10
10536: PPUSH
10537: LD_INT 12
10539: PPUSH
10540: CALL_OW 12
10544: PUSH
10545: EMPTY
10546: LIST
10547: LIST
10548: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
10549: LD_ADDR_OWVAR 31
10553: PUSH
10554: LD_INT 7
10556: PUSH
10557: LD_INT 1
10559: PPUSH
10560: LD_INT 3
10562: PPUSH
10563: CALL_OW 12
10567: PUSH
10568: LD_INT 2
10570: PPUSH
10571: LD_INT 4
10573: PPUSH
10574: CALL_OW 12
10578: PUSH
10579: LD_INT 0
10581: PPUSH
10582: LD_INT 4
10584: PPUSH
10585: CALL_OW 12
10589: PUSH
10590: EMPTY
10591: LIST
10592: LIST
10593: LIST
10594: LIST
10595: ST_TO_ADDR
// hc_sex = sex_male ;
10596: LD_ADDR_OWVAR 27
10600: PUSH
10601: LD_INT 1
10603: ST_TO_ADDR
// hc_class = 1 ;
10604: LD_ADDR_OWVAR 28
10608: PUSH
10609: LD_INT 1
10611: ST_TO_ADDR
// dowRU1 := CreateHuman ;
10612: LD_ADDR_EXP 8
10616: PUSH
10617: CALL_OW 44
10621: ST_TO_ADDR
// PlaceHumanInUnit ( dowRU1 , armouryRU1 ) ;
10622: LD_EXP 8
10626: PPUSH
10627: LD_INT 209
10629: PPUSH
10630: CALL_OW 52
// uc_side = 5 ;
10634: LD_ADDR_OWVAR 20
10638: PUSH
10639: LD_INT 5
10641: ST_TO_ADDR
// uc_nation = 3 ;
10642: LD_ADDR_OWVAR 21
10646: PUSH
10647: LD_INT 3
10649: ST_TO_ADDR
// hc_gallery =  ;
10650: LD_ADDR_OWVAR 33
10654: PUSH
10655: LD_STRING 
10657: ST_TO_ADDR
// hc_name =  ;
10658: LD_ADDR_OWVAR 26
10662: PUSH
10663: LD_STRING 
10665: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
10666: LD_ADDR_OWVAR 29
10670: PUSH
10671: LD_INT 9
10673: PPUSH
10674: LD_INT 11
10676: PPUSH
10677: CALL_OW 12
10681: PUSH
10682: LD_INT 10
10684: PPUSH
10685: LD_INT 12
10687: PPUSH
10688: CALL_OW 12
10692: PUSH
10693: EMPTY
10694: LIST
10695: LIST
10696: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
10697: LD_ADDR_OWVAR 31
10701: PUSH
10702: LD_INT 7
10704: PUSH
10705: LD_INT 1
10707: PPUSH
10708: LD_INT 3
10710: PPUSH
10711: CALL_OW 12
10715: PUSH
10716: LD_INT 2
10718: PPUSH
10719: LD_INT 4
10721: PPUSH
10722: CALL_OW 12
10726: PUSH
10727: LD_INT 0
10729: PPUSH
10730: LD_INT 4
10732: PPUSH
10733: CALL_OW 12
10737: PUSH
10738: EMPTY
10739: LIST
10740: LIST
10741: LIST
10742: LIST
10743: ST_TO_ADDR
// hc_sex = sex_male ;
10744: LD_ADDR_OWVAR 27
10748: PUSH
10749: LD_INT 1
10751: ST_TO_ADDR
// hc_class = 1 ;
10752: LD_ADDR_OWVAR 28
10756: PUSH
10757: LD_INT 1
10759: ST_TO_ADDR
// dowRU2 := CreateHuman ;
10760: LD_ADDR_EXP 9
10764: PUSH
10765: CALL_OW 44
10769: ST_TO_ADDR
// end ; end_of_file
10770: LD_VAR 0 1
10774: RET
// every 0 0$01 trigger Center = 1 do
10775: LD_EXP 4
10779: PUSH
10780: LD_INT 1
10782: EQUAL
10783: IFFALSE 10818
10785: GO 10787
10787: DISABLE
// begin ; enable ;
10788: ENABLE
// if IsInUnit ( Nefarem ) then
10789: LD_EXP 7
10793: PPUSH
10794: CALL_OW 310
10798: IFFALSE 10809
// begin CenterNowOnUnits ( f1 ) ;
10800: LD_INT 727
10802: PPUSH
10803: CALL_OW 87
// end else
10807: GO 10818
// begin CenterNowOnUnits ( Nefarem ) ;
10809: LD_EXP 7
10813: PPUSH
10814: CALL_OW 87
// end ; end ; end_of_file
10818: END
// export function wsparcie ; var l , un ; begin
10819: LD_INT 0
10821: PPUSH
10822: PPUSH
10823: PPUSH
// l = 0 ;
10824: LD_ADDR_VAR 0 2
10828: PUSH
10829: LD_INT 0
10831: ST_TO_ADDR
// repeat vc_chassis = 3 ;
10832: LD_ADDR_OWVAR 37
10836: PUSH
10837: LD_INT 3
10839: ST_TO_ADDR
// vc_engine = engine_combustion ;
10840: LD_ADDR_OWVAR 39
10844: PUSH
10845: LD_INT 1
10847: ST_TO_ADDR
// vc_control = control_Computer ;
10848: LD_ADDR_OWVAR 38
10852: PUSH
10853: LD_INT 3
10855: ST_TO_ADDR
// vc_weapon = 12 ;
10856: LD_ADDR_OWVAR 40
10860: PUSH
10861: LD_INT 12
10863: ST_TO_ADDR
// uc_side = 4 ;
10864: LD_ADDR_OWVAR 20
10868: PUSH
10869: LD_INT 4
10871: ST_TO_ADDR
// uc_nation = 1 ;
10872: LD_ADDR_OWVAR 21
10876: PUSH
10877: LD_INT 1
10879: ST_TO_ADDR
// un = CreateVehicle ;
10880: LD_ADDR_VAR 0 3
10884: PUSH
10885: CALL_OW 45
10889: ST_TO_ADDR
// setcargo ( un , mat_cans , 100 ) ;
10890: LD_VAR 0 3
10894: PPUSH
10895: LD_INT 1
10897: PPUSH
10898: LD_INT 100
10900: PPUSH
10901: CALL_OW 290
// PlaceUnitArea ( un , Area06 , false ) ;
10905: LD_VAR 0 3
10909: PPUSH
10910: LD_INT 1
10912: PPUSH
10913: LD_INT 0
10915: PPUSH
10916: CALL_OW 49
// l = l + 1 ;
10920: LD_ADDR_VAR 0 2
10924: PUSH
10925: LD_VAR 0 2
10929: PUSH
10930: LD_INT 1
10932: PLUS
10933: ST_TO_ADDR
// until l = 2 ;
10934: LD_VAR 0 2
10938: PUSH
10939: LD_INT 2
10941: EQUAL
10942: IFFALSE 10832
// end ; end_of_file
10944: LD_VAR 0 1
10948: RET
// every 0 0$01 do var MechList , Level , un , ve , Chasis , weap , l ;
10949: GO 10951
10951: DISABLE
10952: LD_INT 0
10954: PPUSH
10955: PPUSH
10956: PPUSH
10957: PPUSH
10958: PPUSH
10959: PPUSH
10960: PPUSH
// begin Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
10961: LD_ADDR_VAR 0 2
10965: PUSH
10966: LD_INT 5
10968: PUSH
10969: LD_INT 6
10971: PUSH
10972: LD_INT 7
10974: PUSH
10975: EMPTY
10976: LIST
10977: LIST
10978: LIST
10979: PUSH
10980: LD_OWVAR 67
10984: ARRAY
10985: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_medium_tracked , ru_heavy_wheeled ] [ Difficulty ] ;
10986: LD_ADDR_VAR 0 5
10990: PUSH
10991: LD_INT 21
10993: PUSH
10994: LD_INT 22
10996: PUSH
10997: LD_INT 23
10999: PUSH
11000: EMPTY
11001: LIST
11002: LIST
11003: LIST
11004: PUSH
11005: LD_OWVAR 67
11009: ARRAY
11010: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_gun ] [ Difficulty ] ;
11011: LD_ADDR_VAR 0 6
11015: PUSH
11016: LD_INT 44
11018: PUSH
11019: LD_INT 44
11021: PUSH
11022: LD_INT 44
11024: PUSH
11025: EMPTY
11026: LIST
11027: LIST
11028: LIST
11029: PUSH
11030: LD_OWVAR 67
11034: ARRAY
11035: ST_TO_ADDR
// l = 0 ;
11036: LD_ADDR_VAR 0 7
11040: PUSH
11041: LD_INT 0
11043: ST_TO_ADDR
// hc_importance = 0 ;
11044: LD_ADDR_OWVAR 32
11048: PUSH
11049: LD_INT 0
11051: ST_TO_ADDR
// repeat vc_chassis = Chasis ;
11052: LD_ADDR_OWVAR 37
11056: PUSH
11057: LD_VAR 0 5
11061: ST_TO_ADDR
// vc_engine = engine_combustion ;
11062: LD_ADDR_OWVAR 39
11066: PUSH
11067: LD_INT 1
11069: ST_TO_ADDR
// vc_control = control_manual ;
11070: LD_ADDR_OWVAR 38
11074: PUSH
11075: LD_INT 1
11077: ST_TO_ADDR
// vc_weapon = ru_gun ;
11078: LD_ADDR_OWVAR 40
11082: PUSH
11083: LD_INT 44
11085: ST_TO_ADDR
// hc_class = 3 ;
11086: LD_ADDR_OWVAR 28
11090: PUSH
11091: LD_INT 3
11093: ST_TO_ADDR
// hc_name =  ;
11094: LD_ADDR_OWVAR 26
11098: PUSH
11099: LD_STRING 
11101: ST_TO_ADDR
// uc_side = 6 ;
11102: LD_ADDR_OWVAR 20
11106: PUSH
11107: LD_INT 6
11109: ST_TO_ADDR
// uc_nation = 3 ;
11110: LD_ADDR_OWVAR 21
11114: PUSH
11115: LD_INT 3
11117: ST_TO_ADDR
// hc_gallery =  ;
11118: LD_ADDR_OWVAR 33
11122: PUSH
11123: LD_STRING 
11125: ST_TO_ADDR
// hc_sex = sex_male ;
11126: LD_ADDR_OWVAR 27
11130: PUSH
11131: LD_INT 1
11133: ST_TO_ADDR
// ve = CreateVehicle ;
11134: LD_ADDR_VAR 0 4
11138: PUSH
11139: CALL_OW 45
11143: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
11144: LD_ADDR_OWVAR 31
11148: PUSH
11149: LD_INT 0
11151: PPUSH
11152: LD_INT 4
11154: PPUSH
11155: CALL_OW 12
11159: PUSH
11160: LD_INT 2
11162: PPUSH
11163: LD_INT 4
11165: PPUSH
11166: CALL_OW 12
11170: PUSH
11171: LD_VAR 0 2
11175: PUSH
11176: LD_INT 0
11178: PPUSH
11179: LD_INT 2
11181: PPUSH
11182: CALL_OW 12
11186: PUSH
11187: EMPTY
11188: LIST
11189: LIST
11190: LIST
11191: LIST
11192: ST_TO_ADDR
// un = CreateHuman ;
11193: LD_ADDR_VAR 0 3
11197: PUSH
11198: CALL_OW 44
11202: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
11203: LD_VAR 0 3
11207: PPUSH
11208: LD_VAR 0 4
11212: PPUSH
11213: CALL_OW 52
// PlaceUnitArea ( ve , Ru6repair , false ) ;
11217: LD_VAR 0 4
11221: PPUSH
11222: LD_INT 13
11224: PPUSH
11225: LD_INT 0
11227: PPUSH
11228: CALL_OW 49
// l = l + 1 ;
11232: LD_ADDR_VAR 0 7
11236: PUSH
11237: LD_VAR 0 7
11241: PUSH
11242: LD_INT 1
11244: PLUS
11245: ST_TO_ADDR
// until l = 2 ;
11246: LD_VAR 0 7
11250: PUSH
11251: LD_INT 2
11253: EQUAL
11254: IFFALSE 11052
// if Difficulty = 1 then
11256: LD_OWVAR 67
11260: PUSH
11261: LD_INT 1
11263: EQUAL
11264: IFFALSE 11276
// begin vc_chassis = ru_medium_wheeled ;
11266: LD_ADDR_OWVAR 37
11270: PUSH
11271: LD_INT 21
11273: ST_TO_ADDR
// end else
11274: GO 11284
// begin vc_chassis = ru_medium_tracked ;
11276: LD_ADDR_OWVAR 37
11280: PUSH
11281: LD_INT 22
11283: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
11284: LD_ADDR_OWVAR 39
11288: PUSH
11289: LD_INT 1
11291: ST_TO_ADDR
// vc_control = control_manual ;
11292: LD_ADDR_OWVAR 38
11296: PUSH
11297: LD_INT 1
11299: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
11300: LD_ADDR_OWVAR 40
11304: PUSH
11305: LD_INT 45
11307: ST_TO_ADDR
// hc_class = 3 ;
11308: LD_ADDR_OWVAR 28
11312: PUSH
11313: LD_INT 3
11315: ST_TO_ADDR
// hc_name =  ;
11316: LD_ADDR_OWVAR 26
11320: PUSH
11321: LD_STRING 
11323: ST_TO_ADDR
// uc_side = 6 ;
11324: LD_ADDR_OWVAR 20
11328: PUSH
11329: LD_INT 6
11331: ST_TO_ADDR
// uc_nation = 3 ;
11332: LD_ADDR_OWVAR 21
11336: PUSH
11337: LD_INT 3
11339: ST_TO_ADDR
// hc_gallery =  ;
11340: LD_ADDR_OWVAR 33
11344: PUSH
11345: LD_STRING 
11347: ST_TO_ADDR
// hc_sex = sex_male ;
11348: LD_ADDR_OWVAR 27
11352: PUSH
11353: LD_INT 1
11355: ST_TO_ADDR
// ve = CreateVehicle ;
11356: LD_ADDR_VAR 0 4
11360: PUSH
11361: CALL_OW 45
11365: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
11366: LD_ADDR_OWVAR 31
11370: PUSH
11371: LD_INT 0
11373: PPUSH
11374: LD_INT 4
11376: PPUSH
11377: CALL_OW 12
11381: PUSH
11382: LD_INT 2
11384: PPUSH
11385: LD_INT 4
11387: PPUSH
11388: CALL_OW 12
11392: PUSH
11393: LD_VAR 0 2
11397: PUSH
11398: LD_INT 0
11400: PPUSH
11401: LD_INT 2
11403: PPUSH
11404: CALL_OW 12
11408: PUSH
11409: EMPTY
11410: LIST
11411: LIST
11412: LIST
11413: LIST
11414: ST_TO_ADDR
// un = CreateHuman ;
11415: LD_ADDR_VAR 0 3
11419: PUSH
11420: CALL_OW 44
11424: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
11425: LD_VAR 0 3
11429: PPUSH
11430: LD_VAR 0 4
11434: PPUSH
11435: CALL_OW 52
// PlaceUnitArea ( ve , Ru6repair , false ) ;
11439: LD_VAR 0 4
11443: PPUSH
11444: LD_INT 13
11446: PPUSH
11447: LD_INT 0
11449: PPUSH
11450: CALL_OW 49
// end ;
11454: PPOPN 7
11456: END
// every 0 0$01 marked 65 do
11457: GO 11459
11459: DISABLE
// begin enable ;
11460: ENABLE
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_control , Control_Computer ] ] ) = 4 then
11461: LD_INT 22
11463: PUSH
11464: LD_INT 6
11466: PUSH
11467: EMPTY
11468: LIST
11469: LIST
11470: PUSH
11471: LD_INT 33
11473: PUSH
11474: LD_INT 3
11476: PUSH
11477: EMPTY
11478: LIST
11479: LIST
11480: PUSH
11481: EMPTY
11482: LIST
11483: LIST
11484: PPUSH
11485: CALL_OW 69
11489: PUSH
11490: LD_INT 4
11492: EQUAL
11493: IFFALSE 11503
// begin enable ( 61 ) ;
11495: LD_INT 61
11497: ENABLE_MARKED
// disable ( 62 ) ;
11498: LD_INT 62
11500: DISABLE_MARKED
// end else
11501: GO 11546
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_control , Control_Computer ] ] ) = 0 then
11503: LD_INT 22
11505: PUSH
11506: LD_INT 6
11508: PUSH
11509: EMPTY
11510: LIST
11511: LIST
11512: PUSH
11513: LD_INT 33
11515: PUSH
11516: LD_INT 3
11518: PUSH
11519: EMPTY
11520: LIST
11521: LIST
11522: PUSH
11523: EMPTY
11524: LIST
11525: LIST
11526: PPUSH
11527: CALL_OW 69
11531: PUSH
11532: LD_INT 0
11534: EQUAL
11535: IFFALSE 11546
// begin disable ( 61 ) ;
11537: LD_INT 61
11539: DISABLE_MARKED
// enable ( 62 ) ;
11540: LD_INT 62
11542: ENABLE_MARKED
// enable ( 66 ) ;
11543: LD_INT 66
11545: ENABLE_MARKED
// end ; end ;
11546: END
// every 0 0$2 marked 62 do var pojazdy , Mech , i ;
11547: GO 11549
11549: DISABLE
11550: LD_INT 0
11552: PPUSH
11553: PPUSH
11554: PPUSH
// begin pojazdy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
11555: LD_ADDR_VAR 0 1
11559: PUSH
11560: LD_INT 22
11562: PUSH
11563: LD_INT 6
11565: PUSH
11566: EMPTY
11567: LIST
11568: LIST
11569: PUSH
11570: LD_INT 21
11572: PUSH
11573: LD_INT 2
11575: PUSH
11576: EMPTY
11577: LIST
11578: LIST
11579: PUSH
11580: LD_INT 33
11582: PUSH
11583: LD_INT 1
11585: PUSH
11586: EMPTY
11587: LIST
11588: LIST
11589: PUSH
11590: EMPTY
11591: LIST
11592: LIST
11593: LIST
11594: PPUSH
11595: CALL_OW 69
11599: ST_TO_ADDR
// for i in pojazdy do
11600: LD_ADDR_VAR 0 3
11604: PUSH
11605: LD_VAR 0 1
11609: PUSH
11610: FOR_IN
11611: IFFALSE 11729
// begin if GetLives ( i ) < 999 then
11613: LD_VAR 0 3
11617: PPUSH
11618: CALL_OW 256
11622: PUSH
11623: LD_INT 999
11625: LESS
11626: IFFALSE 11715
// begin Mech := IsDrivenBy ( i ) ;
11628: LD_ADDR_VAR 0 2
11632: PUSH
11633: LD_VAR 0 3
11637: PPUSH
11638: CALL_OW 311
11642: ST_TO_ADDR
// comMoveToArea ( i , Ru6repair ) ;
11643: LD_VAR 0 3
11647: PPUSH
11648: LD_INT 13
11650: PPUSH
11651: CALL_OW 113
// Wait ( 0 0$1 ) ;
11655: LD_INT 35
11657: PPUSH
11658: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
11662: LD_VAR 0 2
11666: PPUSH
11667: CALL_OW 181
// Wait ( 0 0$1 ) ;
11671: LD_INT 35
11673: PPUSH
11674: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
11678: LD_VAR 0 2
11682: PPUSH
11683: LD_VAR 0 3
11687: PPUSH
11688: CALL_OW 189
// Wait ( 0 0$1 ) ;
11692: LD_INT 35
11694: PPUSH
11695: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
11699: LD_VAR 0 2
11703: PPUSH
11704: LD_VAR 0 3
11708: PPUSH
11709: CALL_OW 180
// end else
11713: GO 11727
// begin comMoveToArea ( i , Ru6repair ) ;
11715: LD_VAR 0 3
11719: PPUSH
11720: LD_INT 13
11722: PPUSH
11723: CALL_OW 113
// end ; end ;
11727: GO 11610
11729: POP
11730: POP
// disable ;
11731: DISABLE
// end ;
11732: PPOPN 3
11734: END
// every 0 0$01 marked 61 do var i , atakujacy , broniacy , Mech ;
11735: GO 11737
11737: DISABLE
11738: LD_INT 0
11740: PPUSH
11741: PPUSH
11742: PPUSH
11743: PPUSH
// begin enable ;
11744: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
11745: LD_ADDR_VAR 0 3
11749: PUSH
11750: LD_INT 22
11752: PUSH
11753: LD_INT 4
11755: PUSH
11756: EMPTY
11757: LIST
11758: LIST
11759: PPUSH
11760: CALL_OW 69
11764: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
11765: LD_ADDR_VAR 0 2
11769: PUSH
11770: LD_INT 22
11772: PUSH
11773: LD_INT 6
11775: PUSH
11776: EMPTY
11777: LIST
11778: LIST
11779: PUSH
11780: LD_INT 21
11782: PUSH
11783: LD_INT 2
11785: PUSH
11786: EMPTY
11787: LIST
11788: LIST
11789: PUSH
11790: LD_INT 33
11792: PUSH
11793: LD_INT 1
11795: PUSH
11796: EMPTY
11797: LIST
11798: LIST
11799: PUSH
11800: EMPTY
11801: LIST
11802: LIST
11803: LIST
11804: PPUSH
11805: CALL_OW 69
11809: ST_TO_ADDR
// for i in atakujacy do
11810: LD_ADDR_VAR 0 1
11814: PUSH
11815: LD_VAR 0 2
11819: PUSH
11820: FOR_IN
11821: IFFALSE 11963
// begin if GetLives ( i ) < 600 then
11823: LD_VAR 0 1
11827: PPUSH
11828: CALL_OW 256
11832: PUSH
11833: LD_INT 600
11835: LESS
11836: IFFALSE 11925
// begin Mech := IsDrivenBy ( i ) ;
11838: LD_ADDR_VAR 0 4
11842: PUSH
11843: LD_VAR 0 1
11847: PPUSH
11848: CALL_OW 311
11852: ST_TO_ADDR
// ComMoveToArea ( i , Ru6repair ) ;
11853: LD_VAR 0 1
11857: PPUSH
11858: LD_INT 13
11860: PPUSH
11861: CALL_OW 113
// Wait ( 0 0$1 ) ;
11865: LD_INT 35
11867: PPUSH
11868: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
11872: LD_VAR 0 4
11876: PPUSH
11877: CALL_OW 181
// Wait ( 0 0$1 ) ;
11881: LD_INT 35
11883: PPUSH
11884: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
11888: LD_VAR 0 4
11892: PPUSH
11893: LD_VAR 0 1
11897: PPUSH
11898: CALL_OW 189
// Wait ( 0 0$1 ) ;
11902: LD_INT 35
11904: PPUSH
11905: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
11909: LD_VAR 0 4
11913: PPUSH
11914: LD_VAR 0 1
11918: PPUSH
11919: CALL_OW 180
// end else
11923: GO 11949
// ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
11925: LD_VAR 0 1
11929: PPUSH
11930: LD_VAR 0 3
11934: PPUSH
11935: LD_VAR 0 1
11939: PPUSH
11940: CALL_OW 74
11944: PPUSH
11945: CALL_OW 115
// setFuel ( i , 100 ) ;
11949: LD_VAR 0 1
11953: PPUSH
11954: LD_INT 100
11956: PPUSH
11957: CALL_OW 240
// end ;
11961: GO 11820
11963: POP
11964: POP
// end ;
11965: PPOPN 4
11967: END
// every 0 0$02 do var i , atakujacy , broniacy ;
11968: GO 11970
11970: DISABLE
11971: LD_INT 0
11973: PPUSH
11974: PPUSH
11975: PPUSH
// begin enable ;
11976: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
11977: LD_ADDR_VAR 0 3
11981: PUSH
11982: LD_INT 22
11984: PUSH
11985: LD_INT 4
11987: PUSH
11988: EMPTY
11989: LIST
11990: LIST
11991: PPUSH
11992: CALL_OW 69
11996: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 5 ] , [ f_type , unit_vehicle ] , [ f_control , Control_computer ] ] ) ^ RussianPersonel ;
11997: LD_ADDR_VAR 0 2
12001: PUSH
12002: LD_INT 22
12004: PUSH
12005: LD_INT 5
12007: PUSH
12008: EMPTY
12009: LIST
12010: LIST
12011: PUSH
12012: LD_INT 21
12014: PUSH
12015: LD_INT 2
12017: PUSH
12018: EMPTY
12019: LIST
12020: LIST
12021: PUSH
12022: LD_INT 33
12024: PUSH
12025: LD_INT 3
12027: PUSH
12028: EMPTY
12029: LIST
12030: LIST
12031: PUSH
12032: EMPTY
12033: LIST
12034: LIST
12035: LIST
12036: PPUSH
12037: CALL_OW 69
12041: PUSH
12042: LD_EXP 13
12046: ADD
12047: ST_TO_ADDR
// for i in atakujacy do
12048: LD_ADDR_VAR 0 1
12052: PUSH
12053: LD_VAR 0 2
12057: PUSH
12058: FOR_IN
12059: IFFALSE 12099
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
12061: LD_VAR 0 1
12065: PPUSH
12066: LD_VAR 0 3
12070: PPUSH
12071: LD_VAR 0 1
12075: PPUSH
12076: CALL_OW 74
12080: PPUSH
12081: CALL_OW 115
// setFuel ( i , 100 ) ;
12085: LD_VAR 0 1
12089: PPUSH
12090: LD_INT 100
12092: PPUSH
12093: CALL_OW 240
// end ;
12097: GO 12058
12099: POP
12100: POP
// end ;
12101: PPOPN 3
12103: END
// every 0 0$01 do var MechList , Level , un , ve , Chasis , weap , l ;
12104: GO 12106
12106: DISABLE
12107: LD_INT 0
12109: PPUSH
12110: PPUSH
12111: PPUSH
12112: PPUSH
12113: PPUSH
12114: PPUSH
12115: PPUSH
// begin Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
12116: LD_ADDR_VAR 0 2
12120: PUSH
12121: LD_INT 5
12123: PUSH
12124: LD_INT 6
12126: PUSH
12127: LD_INT 7
12129: PUSH
12130: EMPTY
12131: LIST
12132: LIST
12133: LIST
12134: PUSH
12135: LD_OWVAR 67
12139: ARRAY
12140: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_medium_tracked , ru_heavy_wheeled ] [ Difficulty ] ;
12141: LD_ADDR_VAR 0 5
12145: PUSH
12146: LD_INT 21
12148: PUSH
12149: LD_INT 22
12151: PUSH
12152: LD_INT 23
12154: PUSH
12155: EMPTY
12156: LIST
12157: LIST
12158: LIST
12159: PUSH
12160: LD_OWVAR 67
12164: ARRAY
12165: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_gun ] [ Difficulty ] ;
12166: LD_ADDR_VAR 0 6
12170: PUSH
12171: LD_INT 44
12173: PUSH
12174: LD_INT 44
12176: PUSH
12177: LD_INT 44
12179: PUSH
12180: EMPTY
12181: LIST
12182: LIST
12183: LIST
12184: PUSH
12185: LD_OWVAR 67
12189: ARRAY
12190: ST_TO_ADDR
// l = 0 ;
12191: LD_ADDR_VAR 0 7
12195: PUSH
12196: LD_INT 0
12198: ST_TO_ADDR
// hc_importance = 0 ;
12199: LD_ADDR_OWVAR 32
12203: PUSH
12204: LD_INT 0
12206: ST_TO_ADDR
// repeat vc_chassis = Chasis ;
12207: LD_ADDR_OWVAR 37
12211: PUSH
12212: LD_VAR 0 5
12216: ST_TO_ADDR
// vc_engine = engine_combustion ;
12217: LD_ADDR_OWVAR 39
12221: PUSH
12222: LD_INT 1
12224: ST_TO_ADDR
// vc_control = control_manual ;
12225: LD_ADDR_OWVAR 38
12229: PUSH
12230: LD_INT 1
12232: ST_TO_ADDR
// if l = 1 then
12233: LD_VAR 0 7
12237: PUSH
12238: LD_INT 1
12240: EQUAL
12241: IFFALSE 12255
// begin vc_weapon = weap ;
12243: LD_ADDR_OWVAR 40
12247: PUSH
12248: LD_VAR 0 6
12252: ST_TO_ADDR
// end else
12253: GO 12263
// begin vc_weapon = ru_gun ;
12255: LD_ADDR_OWVAR 40
12259: PUSH
12260: LD_INT 44
12262: ST_TO_ADDR
// end ; hc_class = 3 ;
12263: LD_ADDR_OWVAR 28
12267: PUSH
12268: LD_INT 3
12270: ST_TO_ADDR
// hc_name =  ;
12271: LD_ADDR_OWVAR 26
12275: PUSH
12276: LD_STRING 
12278: ST_TO_ADDR
// uc_side = 3 ;
12279: LD_ADDR_OWVAR 20
12283: PUSH
12284: LD_INT 3
12286: ST_TO_ADDR
// uc_nation = 3 ;
12287: LD_ADDR_OWVAR 21
12291: PUSH
12292: LD_INT 3
12294: ST_TO_ADDR
// hc_gallery =  ;
12295: LD_ADDR_OWVAR 33
12299: PUSH
12300: LD_STRING 
12302: ST_TO_ADDR
// hc_sex = sex_male ;
12303: LD_ADDR_OWVAR 27
12307: PUSH
12308: LD_INT 1
12310: ST_TO_ADDR
// ve = CreateVehicle ;
12311: LD_ADDR_VAR 0 4
12315: PUSH
12316: CALL_OW 45
12320: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
12321: LD_ADDR_OWVAR 31
12325: PUSH
12326: LD_INT 0
12328: PPUSH
12329: LD_INT 4
12331: PPUSH
12332: CALL_OW 12
12336: PUSH
12337: LD_INT 2
12339: PPUSH
12340: LD_INT 4
12342: PPUSH
12343: CALL_OW 12
12347: PUSH
12348: LD_VAR 0 2
12352: PUSH
12353: LD_INT 0
12355: PPUSH
12356: LD_INT 2
12358: PPUSH
12359: CALL_OW 12
12363: PUSH
12364: EMPTY
12365: LIST
12366: LIST
12367: LIST
12368: LIST
12369: ST_TO_ADDR
// un = CreateHuman ;
12370: LD_ADDR_VAR 0 3
12374: PUSH
12375: CALL_OW 44
12379: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
12380: LD_VAR 0 3
12384: PPUSH
12385: LD_VAR 0 4
12389: PPUSH
12390: CALL_OW 52
// PlaceUnitArea ( ve , Ru3repair , false ) ;
12394: LD_VAR 0 4
12398: PPUSH
12399: LD_INT 14
12401: PPUSH
12402: LD_INT 0
12404: PPUSH
12405: CALL_OW 49
// l = l + 1 ;
12409: LD_ADDR_VAR 0 7
12413: PUSH
12414: LD_VAR 0 7
12418: PUSH
12419: LD_INT 1
12421: PLUS
12422: ST_TO_ADDR
// until l = 2 ;
12423: LD_VAR 0 7
12427: PUSH
12428: LD_INT 2
12430: EQUAL
12431: IFFALSE 12207
// if Difficulty = 3 then
12433: LD_OWVAR 67
12437: PUSH
12438: LD_INT 3
12440: EQUAL
12441: IFFALSE 12453
// begin vc_chassis = ru_heavy_tracked ;
12443: LD_ADDR_OWVAR 37
12447: PUSH
12448: LD_INT 24
12450: ST_TO_ADDR
// end else
12451: GO 12461
// begin vc_chassis = ru_medium_tracked ;
12453: LD_ADDR_OWVAR 37
12457: PUSH
12458: LD_INT 22
12460: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
12461: LD_ADDR_OWVAR 39
12465: PUSH
12466: LD_INT 1
12468: ST_TO_ADDR
// vc_control = control_manual ;
12469: LD_ADDR_OWVAR 38
12473: PUSH
12474: LD_INT 1
12476: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
12477: LD_ADDR_OWVAR 40
12481: PUSH
12482: LD_INT 45
12484: ST_TO_ADDR
// hc_class = 3 ;
12485: LD_ADDR_OWVAR 28
12489: PUSH
12490: LD_INT 3
12492: ST_TO_ADDR
// hc_name =  ;
12493: LD_ADDR_OWVAR 26
12497: PUSH
12498: LD_STRING 
12500: ST_TO_ADDR
// uc_side = 3 ;
12501: LD_ADDR_OWVAR 20
12505: PUSH
12506: LD_INT 3
12508: ST_TO_ADDR
// uc_nation = 3 ;
12509: LD_ADDR_OWVAR 21
12513: PUSH
12514: LD_INT 3
12516: ST_TO_ADDR
// hc_gallery =  ;
12517: LD_ADDR_OWVAR 33
12521: PUSH
12522: LD_STRING 
12524: ST_TO_ADDR
// hc_sex = sex_male ;
12525: LD_ADDR_OWVAR 27
12529: PUSH
12530: LD_INT 1
12532: ST_TO_ADDR
// ve = CreateVehicle ;
12533: LD_ADDR_VAR 0 4
12537: PUSH
12538: CALL_OW 45
12542: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Rand ( 2 , 4 ) , Level , Rand ( 0 , 2 ) ] ;
12543: LD_ADDR_OWVAR 31
12547: PUSH
12548: LD_INT 0
12550: PPUSH
12551: LD_INT 3
12553: PPUSH
12554: CALL_OW 12
12558: PUSH
12559: LD_INT 2
12561: PPUSH
12562: LD_INT 4
12564: PPUSH
12565: CALL_OW 12
12569: PUSH
12570: LD_VAR 0 2
12574: PUSH
12575: LD_INT 0
12577: PPUSH
12578: LD_INT 2
12580: PPUSH
12581: CALL_OW 12
12585: PUSH
12586: EMPTY
12587: LIST
12588: LIST
12589: LIST
12590: LIST
12591: ST_TO_ADDR
// un = CreateHuman ;
12592: LD_ADDR_VAR 0 3
12596: PUSH
12597: CALL_OW 44
12601: ST_TO_ADDR
// PlaceHumanInUnit ( un , ve ) ;
12602: LD_VAR 0 3
12606: PPUSH
12607: LD_VAR 0 4
12611: PPUSH
12612: CALL_OW 52
// PlaceUnitArea ( ve , Ru3repair , false ) ;
12616: LD_VAR 0 4
12620: PPUSH
12621: LD_INT 14
12623: PPUSH
12624: LD_INT 0
12626: PPUSH
12627: CALL_OW 49
// end ;
12631: PPOPN 7
12633: END
// every 0 0$01 do
12634: GO 12636
12636: DISABLE
// begin enable ;
12637: ENABLE
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , Control_Computer ] ] ) = 4 then
12638: LD_INT 22
12640: PUSH
12641: LD_INT 3
12643: PUSH
12644: EMPTY
12645: LIST
12646: LIST
12647: PUSH
12648: LD_INT 33
12650: PUSH
12651: LD_INT 3
12653: PUSH
12654: EMPTY
12655: LIST
12656: LIST
12657: PUSH
12658: EMPTY
12659: LIST
12660: LIST
12661: PPUSH
12662: CALL_OW 69
12666: PUSH
12667: LD_INT 4
12669: EQUAL
12670: IFFALSE 12680
// begin enable ( 31 ) ;
12672: LD_INT 31
12674: ENABLE_MARKED
// disable ( 32 ) ;
12675: LD_INT 32
12677: DISABLE_MARKED
// end else
12678: GO 12723
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , Control_Computer ] ] ) = 0 then
12680: LD_INT 22
12682: PUSH
12683: LD_INT 3
12685: PUSH
12686: EMPTY
12687: LIST
12688: LIST
12689: PUSH
12690: LD_INT 33
12692: PUSH
12693: LD_INT 3
12695: PUSH
12696: EMPTY
12697: LIST
12698: LIST
12699: PUSH
12700: EMPTY
12701: LIST
12702: LIST
12703: PPUSH
12704: CALL_OW 69
12708: PUSH
12709: LD_INT 0
12711: EQUAL
12712: IFFALSE 12723
// begin disable ( 31 ) ;
12714: LD_INT 31
12716: DISABLE_MARKED
// enable ( 32 ) ;
12717: LD_INT 32
12719: ENABLE_MARKED
// enable ( 36 ) ;
12720: LD_INT 36
12722: ENABLE_MARKED
// end ; end ;
12723: END
// every 0 0$2 marked 32 do var pojazdy , Mech , i ;
12724: GO 12726
12726: DISABLE
12727: LD_INT 0
12729: PPUSH
12730: PPUSH
12731: PPUSH
// begin pojazdy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
12732: LD_ADDR_VAR 0 1
12736: PUSH
12737: LD_INT 22
12739: PUSH
12740: LD_INT 3
12742: PUSH
12743: EMPTY
12744: LIST
12745: LIST
12746: PUSH
12747: LD_INT 21
12749: PUSH
12750: LD_INT 2
12752: PUSH
12753: EMPTY
12754: LIST
12755: LIST
12756: PUSH
12757: LD_INT 33
12759: PUSH
12760: LD_INT 1
12762: PUSH
12763: EMPTY
12764: LIST
12765: LIST
12766: PUSH
12767: EMPTY
12768: LIST
12769: LIST
12770: LIST
12771: PPUSH
12772: CALL_OW 69
12776: ST_TO_ADDR
// for i in pojazdy do
12777: LD_ADDR_VAR 0 3
12781: PUSH
12782: LD_VAR 0 1
12786: PUSH
12787: FOR_IN
12788: IFFALSE 12906
// begin if GetLives ( i ) < 999 then
12790: LD_VAR 0 3
12794: PPUSH
12795: CALL_OW 256
12799: PUSH
12800: LD_INT 999
12802: LESS
12803: IFFALSE 12892
// begin Mech := IsDrivenBy ( i ) ;
12805: LD_ADDR_VAR 0 2
12809: PUSH
12810: LD_VAR 0 3
12814: PPUSH
12815: CALL_OW 311
12819: ST_TO_ADDR
// comMoveToArea ( i , Ru3repair ) ;
12820: LD_VAR 0 3
12824: PPUSH
12825: LD_INT 14
12827: PPUSH
12828: CALL_OW 113
// Wait ( 0 0$1 ) ;
12832: LD_INT 35
12834: PPUSH
12835: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
12839: LD_VAR 0 2
12843: PPUSH
12844: CALL_OW 181
// Wait ( 0 0$1 ) ;
12848: LD_INT 35
12850: PPUSH
12851: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
12855: LD_VAR 0 2
12859: PPUSH
12860: LD_VAR 0 3
12864: PPUSH
12865: CALL_OW 189
// Wait ( 0 0$1 ) ;
12869: LD_INT 35
12871: PPUSH
12872: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
12876: LD_VAR 0 2
12880: PPUSH
12881: LD_VAR 0 3
12885: PPUSH
12886: CALL_OW 180
// end else
12890: GO 12904
// begin comMoveToArea ( i , Ru3repair ) ;
12892: LD_VAR 0 3
12896: PPUSH
12897: LD_INT 14
12899: PPUSH
12900: CALL_OW 113
// end ; end ;
12904: GO 12787
12906: POP
12907: POP
// disable ;
12908: DISABLE
// end ;
12909: PPOPN 3
12911: END
// every 0 0$01 marked 31 do var i , atakujacy , broniacy , Mech ;
12912: GO 12914
12914: DISABLE
12915: LD_INT 0
12917: PPUSH
12918: PPUSH
12919: PPUSH
12920: PPUSH
// begin enable ;
12921: ENABLE
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
12922: LD_ADDR_VAR 0 3
12926: PUSH
12927: LD_INT 22
12929: PUSH
12930: LD_INT 4
12932: PUSH
12933: EMPTY
12934: LIST
12935: LIST
12936: PPUSH
12937: CALL_OW 69
12941: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_control , Control_manual ] ] ) ;
12942: LD_ADDR_VAR 0 2
12946: PUSH
12947: LD_INT 22
12949: PUSH
12950: LD_INT 3
12952: PUSH
12953: EMPTY
12954: LIST
12955: LIST
12956: PUSH
12957: LD_INT 21
12959: PUSH
12960: LD_INT 2
12962: PUSH
12963: EMPTY
12964: LIST
12965: LIST
12966: PUSH
12967: LD_INT 33
12969: PUSH
12970: LD_INT 1
12972: PUSH
12973: EMPTY
12974: LIST
12975: LIST
12976: PUSH
12977: EMPTY
12978: LIST
12979: LIST
12980: LIST
12981: PPUSH
12982: CALL_OW 69
12986: ST_TO_ADDR
// for i in atakujacy do
12987: LD_ADDR_VAR 0 1
12991: PUSH
12992: LD_VAR 0 2
12996: PUSH
12997: FOR_IN
12998: IFFALSE 13140
// begin if GetLives ( i ) < 600 then
13000: LD_VAR 0 1
13004: PPUSH
13005: CALL_OW 256
13009: PUSH
13010: LD_INT 600
13012: LESS
13013: IFFALSE 13102
// begin Mech := IsDrivenBy ( i ) ;
13015: LD_ADDR_VAR 0 4
13019: PUSH
13020: LD_VAR 0 1
13024: PPUSH
13025: CALL_OW 311
13029: ST_TO_ADDR
// ComMoveToArea ( i , Ru3repair ) ;
13030: LD_VAR 0 1
13034: PPUSH
13035: LD_INT 14
13037: PPUSH
13038: CALL_OW 113
// Wait ( 0 0$1 ) ;
13042: LD_INT 35
13044: PPUSH
13045: CALL_OW 67
// AddComExitVehicle ( Mech ) ;
13049: LD_VAR 0 4
13053: PPUSH
13054: CALL_OW 181
// Wait ( 0 0$1 ) ;
13058: LD_INT 35
13060: PPUSH
13061: CALL_OW 67
// AddComRepairVehicle ( Mech , i ) ;
13065: LD_VAR 0 4
13069: PPUSH
13070: LD_VAR 0 1
13074: PPUSH
13075: CALL_OW 189
// Wait ( 0 0$1 ) ;
13079: LD_INT 35
13081: PPUSH
13082: CALL_OW 67
// AddComEnterUnit ( Mech , i ) ;
13086: LD_VAR 0 4
13090: PPUSH
13091: LD_VAR 0 1
13095: PPUSH
13096: CALL_OW 180
// end else
13100: GO 13126
// ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
13102: LD_VAR 0 1
13106: PPUSH
13107: LD_VAR 0 3
13111: PPUSH
13112: LD_VAR 0 1
13116: PPUSH
13117: CALL_OW 74
13121: PPUSH
13122: CALL_OW 115
// setFuel ( i , 100 ) ;
13126: LD_VAR 0 1
13130: PPUSH
13131: LD_INT 100
13133: PPUSH
13134: CALL_OW 240
// end ;
13138: GO 12997
13140: POP
13141: POP
// end ; end_of_file
13142: PPOPN 4
13144: END
// export RussianPersonel ; export function EnemyHelp ; var MechList , Level , un , ve , Chasis , weap , l ; begin
13145: LD_INT 0
13147: PPUSH
13148: PPUSH
13149: PPUSH
13150: PPUSH
13151: PPUSH
13152: PPUSH
13153: PPUSH
13154: PPUSH
// Level = [ 5 , 6 , 6 ] [ Difficulty ] ;
13155: LD_ADDR_VAR 0 3
13159: PUSH
13160: LD_INT 5
13162: PUSH
13163: LD_INT 6
13165: PUSH
13166: LD_INT 6
13168: PUSH
13169: EMPTY
13170: LIST
13171: LIST
13172: LIST
13173: PUSH
13174: LD_OWVAR 67
13178: ARRAY
13179: ST_TO_ADDR
// Chasis = [ ru_medium_wheeled , ru_heavy_wheeled , ru_heavy_tracked ] [ Difficulty ] ;
13180: LD_ADDR_VAR 0 6
13184: PUSH
13185: LD_INT 21
13187: PUSH
13188: LD_INT 23
13190: PUSH
13191: LD_INT 24
13193: PUSH
13194: EMPTY
13195: LIST
13196: LIST
13197: LIST
13198: PUSH
13199: LD_OWVAR 67
13203: ARRAY
13204: ST_TO_ADDR
// weap = [ ru_gun , ru_gun , ru_heavy_gun ] [ Difficulty ] ;
13205: LD_ADDR_VAR 0 7
13209: PUSH
13210: LD_INT 44
13212: PUSH
13213: LD_INT 44
13215: PUSH
13216: LD_INT 46
13218: PUSH
13219: EMPTY
13220: LIST
13221: LIST
13222: LIST
13223: PUSH
13224: LD_OWVAR 67
13228: ARRAY
13229: ST_TO_ADDR
// l = 0 ;
13230: LD_ADDR_VAR 0 8
13234: PUSH
13235: LD_INT 0
13237: ST_TO_ADDR
// repeat uc_side = 5 ;
13238: LD_ADDR_OWVAR 20
13242: PUSH
13243: LD_INT 5
13245: ST_TO_ADDR
// vc_chassis = Chasis ;
13246: LD_ADDR_OWVAR 37
13250: PUSH
13251: LD_VAR 0 6
13255: ST_TO_ADDR
// vc_engine = engine_combustion ;
13256: LD_ADDR_OWVAR 39
13260: PUSH
13261: LD_INT 1
13263: ST_TO_ADDR
// vc_control = control_computer ;
13264: LD_ADDR_OWVAR 38
13268: PUSH
13269: LD_INT 3
13271: ST_TO_ADDR
// if l <= 2 then
13272: LD_VAR 0 8
13276: PUSH
13277: LD_INT 2
13279: LESSEQUAL
13280: IFFALSE 13294
// begin vc_weapon = weap ;
13282: LD_ADDR_OWVAR 40
13286: PUSH
13287: LD_VAR 0 7
13291: ST_TO_ADDR
// end else
13292: GO 13302
// begin vc_weapon = ru_gun ;
13294: LD_ADDR_OWVAR 40
13298: PUSH
13299: LD_INT 44
13301: ST_TO_ADDR
// end ; ve = CreateVehicle ;
13302: LD_ADDR_VAR 0 5
13306: PUSH
13307: CALL_OW 45
13311: ST_TO_ADDR
// PlaceUnitArea ( ve , Area10 , false ) ;
13312: LD_VAR 0 5
13316: PPUSH
13317: LD_INT 5
13319: PPUSH
13320: LD_INT 0
13322: PPUSH
13323: CALL_OW 49
// l = l + 1 ;
13327: LD_ADDR_VAR 0 8
13331: PUSH
13332: LD_VAR 0 8
13336: PUSH
13337: LD_INT 1
13339: PLUS
13340: ST_TO_ADDR
// until l = 3 ;
13341: LD_VAR 0 8
13345: PUSH
13346: LD_INT 3
13348: EQUAL
13349: IFFALSE 13238
// l = 0 ;
13351: LD_ADDR_VAR 0 8
13355: PUSH
13356: LD_INT 0
13358: ST_TO_ADDR
// repeat uc_side = 5 ;
13359: LD_ADDR_OWVAR 20
13363: PUSH
13364: LD_INT 5
13366: ST_TO_ADDR
// if Difficulty = 1 then
13367: LD_OWVAR 67
13371: PUSH
13372: LD_INT 1
13374: EQUAL
13375: IFFALSE 13387
// begin vc_chassis = ru_medium_wheeled ;
13377: LD_ADDR_OWVAR 37
13381: PUSH
13382: LD_INT 21
13384: ST_TO_ADDR
// end else
13385: GO 13395
// begin vc_chassis = ru_heavy_wheeled ;
13387: LD_ADDR_OWVAR 37
13391: PUSH
13392: LD_INT 23
13394: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
13395: LD_ADDR_OWVAR 39
13399: PUSH
13400: LD_INT 1
13402: ST_TO_ADDR
// vc_control = control_computer ;
13403: LD_ADDR_OWVAR 38
13407: PUSH
13408: LD_INT 3
13410: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
13411: LD_ADDR_OWVAR 40
13415: PUSH
13416: LD_INT 45
13418: ST_TO_ADDR
// ve = CreateVehicle ;
13419: LD_ADDR_VAR 0 5
13423: PUSH
13424: CALL_OW 45
13428: ST_TO_ADDR
// PlaceUnitArea ( ve , Area08 , false ) ;
13429: LD_VAR 0 5
13433: PPUSH
13434: LD_INT 3
13436: PPUSH
13437: LD_INT 0
13439: PPUSH
13440: CALL_OW 49
// l = l + 1 ;
13444: LD_ADDR_VAR 0 8
13448: PUSH
13449: LD_VAR 0 8
13453: PUSH
13454: LD_INT 1
13456: PLUS
13457: ST_TO_ADDR
// until l = 2 ;
13458: LD_VAR 0 8
13462: PUSH
13463: LD_INT 2
13465: EQUAL
13466: IFFALSE 13359
// l = 0 ;
13468: LD_ADDR_VAR 0 8
13472: PUSH
13473: LD_INT 0
13475: ST_TO_ADDR
// repeat uc_side = 5 ;
13476: LD_ADDR_OWVAR 20
13480: PUSH
13481: LD_INT 5
13483: ST_TO_ADDR
// uc_nation = 3 ;
13484: LD_ADDR_OWVAR 21
13488: PUSH
13489: LD_INT 3
13491: ST_TO_ADDR
// hc_gallery =  ;
13492: LD_ADDR_OWVAR 33
13496: PUSH
13497: LD_STRING 
13499: ST_TO_ADDR
// hc_name =  ;
13500: LD_ADDR_OWVAR 26
13504: PUSH
13505: LD_STRING 
13507: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
13508: LD_ADDR_OWVAR 29
13512: PUSH
13513: LD_INT 9
13515: PPUSH
13516: LD_INT 11
13518: PPUSH
13519: CALL_OW 12
13523: PUSH
13524: LD_INT 10
13526: PPUSH
13527: LD_INT 12
13529: PPUSH
13530: CALL_OW 12
13534: PUSH
13535: EMPTY
13536: LIST
13537: LIST
13538: ST_TO_ADDR
// hc_skills = [ Level - Rand ( 0 , 1 ) , Rand ( 1 , 3 ) , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) ] ;
13539: LD_ADDR_OWVAR 31
13543: PUSH
13544: LD_VAR 0 3
13548: PUSH
13549: LD_INT 0
13551: PPUSH
13552: LD_INT 1
13554: PPUSH
13555: CALL_OW 12
13559: MINUS
13560: PUSH
13561: LD_INT 1
13563: PPUSH
13564: LD_INT 3
13566: PPUSH
13567: CALL_OW 12
13571: PUSH
13572: LD_INT 2
13574: PPUSH
13575: LD_INT 4
13577: PPUSH
13578: CALL_OW 12
13582: PUSH
13583: LD_INT 0
13585: PPUSH
13586: LD_INT 4
13588: PPUSH
13589: CALL_OW 12
13593: PUSH
13594: EMPTY
13595: LIST
13596: LIST
13597: LIST
13598: LIST
13599: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
13600: LD_ADDR_OWVAR 27
13604: PUSH
13605: LD_INT 1
13607: PPUSH
13608: LD_INT 2
13610: PPUSH
13611: CALL_OW 12
13615: ST_TO_ADDR
// hc_class = 1 ;
13616: LD_ADDR_OWVAR 28
13620: PUSH
13621: LD_INT 1
13623: ST_TO_ADDR
// un = CreateHuman ;
13624: LD_ADDR_VAR 0 4
13628: PUSH
13629: CALL_OW 44
13633: ST_TO_ADDR
// PlaceUnitArea ( un , Area09 , false ) ;
13634: LD_VAR 0 4
13638: PPUSH
13639: LD_INT 4
13641: PPUSH
13642: LD_INT 0
13644: PPUSH
13645: CALL_OW 49
// l = l + 1 ;
13649: LD_ADDR_VAR 0 8
13653: PUSH
13654: LD_VAR 0 8
13658: PUSH
13659: LD_INT 1
13661: PLUS
13662: ST_TO_ADDR
// RussianPersonel = RussianPersonel ^ un ;
13663: LD_ADDR_EXP 13
13667: PUSH
13668: LD_EXP 13
13672: PUSH
13673: LD_VAR 0 4
13677: ADD
13678: ST_TO_ADDR
// until l = [ 4 , 5 , 7 ] [ Difficulty ] end ; end_of_file
13679: LD_VAR 0 8
13683: PUSH
13684: LD_INT 4
13686: PUSH
13687: LD_INT 5
13689: PUSH
13690: LD_INT 7
13692: PUSH
13693: EMPTY
13694: LIST
13695: LIST
13696: LIST
13697: PUSH
13698: LD_OWVAR 67
13702: ARRAY
13703: EQUAL
13704: IFFALSE 13476
13706: LD_VAR 0 1
13710: RET
// every 0 0$01 do
13711: GO 13713
13713: DISABLE
// begin case Difficulty of 1 :
13714: LD_OWVAR 67
13718: PUSH
13719: LD_INT 1
13721: DOUBLE
13722: EQUAL
13723: IFTRUE 13727
13725: GO 13847
13727: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
13728: LD_INT 57
13730: PPUSH
13731: LD_INT 6
13733: PPUSH
13734: LD_INT 2
13736: PPUSH
13737: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
13741: LD_INT 48
13743: PPUSH
13744: LD_INT 6
13746: PPUSH
13747: LD_INT 2
13749: PPUSH
13750: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
13754: LD_INT 51
13756: PPUSH
13757: LD_INT 6
13759: PPUSH
13760: LD_INT 2
13762: PPUSH
13763: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
13767: LD_INT 57
13769: PPUSH
13770: LD_INT 3
13772: PPUSH
13773: LD_INT 2
13775: PPUSH
13776: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
13780: LD_INT 48
13782: PPUSH
13783: LD_INT 3
13785: PPUSH
13786: LD_INT 2
13788: PPUSH
13789: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
13793: LD_INT 51
13795: PPUSH
13796: LD_INT 3
13798: PPUSH
13799: LD_INT 2
13801: PPUSH
13802: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
13806: LD_INT 57
13808: PPUSH
13809: LD_INT 5
13811: PPUSH
13812: LD_INT 2
13814: PPUSH
13815: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
13819: LD_INT 48
13821: PPUSH
13822: LD_INT 5
13824: PPUSH
13825: LD_INT 2
13827: PPUSH
13828: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
13832: LD_INT 51
13834: PPUSH
13835: LD_INT 5
13837: PPUSH
13838: LD_INT 2
13840: PPUSH
13841: CALL_OW 322
// end ; 2 :
13845: GO 14299
13847: LD_INT 2
13849: DOUBLE
13850: EQUAL
13851: IFTRUE 13855
13853: GO 14053
13855: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
13856: LD_INT 57
13858: PPUSH
13859: LD_INT 6
13861: PPUSH
13862: LD_INT 2
13864: PPUSH
13865: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
13869: LD_INT 48
13871: PPUSH
13872: LD_INT 6
13874: PPUSH
13875: LD_INT 2
13877: PPUSH
13878: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
13882: LD_INT 49
13884: PPUSH
13885: LD_INT 6
13887: PPUSH
13888: LD_INT 2
13890: PPUSH
13891: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
13895: LD_INT 51
13897: PPUSH
13898: LD_INT 6
13900: PPUSH
13901: LD_INT 2
13903: PPUSH
13904: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
13908: LD_INT 52
13910: PPUSH
13911: LD_INT 6
13913: PPUSH
13914: LD_INT 2
13916: PPUSH
13917: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
13921: LD_INT 57
13923: PPUSH
13924: LD_INT 3
13926: PPUSH
13927: LD_INT 2
13929: PPUSH
13930: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
13934: LD_INT 48
13936: PPUSH
13937: LD_INT 3
13939: PPUSH
13940: LD_INT 2
13942: PPUSH
13943: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
13947: LD_INT 49
13949: PPUSH
13950: LD_INT 3
13952: PPUSH
13953: LD_INT 2
13955: PPUSH
13956: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
13960: LD_INT 51
13962: PPUSH
13963: LD_INT 3
13965: PPUSH
13966: LD_INT 2
13968: PPUSH
13969: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
13973: LD_INT 52
13975: PPUSH
13976: LD_INT 3
13978: PPUSH
13979: LD_INT 2
13981: PPUSH
13982: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
13986: LD_INT 57
13988: PPUSH
13989: LD_INT 5
13991: PPUSH
13992: LD_INT 2
13994: PPUSH
13995: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
13999: LD_INT 48
14001: PPUSH
14002: LD_INT 5
14004: PPUSH
14005: LD_INT 2
14007: PPUSH
14008: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
14012: LD_INT 49
14014: PPUSH
14015: LD_INT 5
14017: PPUSH
14018: LD_INT 2
14020: PPUSH
14021: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
14025: LD_INT 51
14027: PPUSH
14028: LD_INT 5
14030: PPUSH
14031: LD_INT 2
14033: PPUSH
14034: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
14038: LD_INT 52
14040: PPUSH
14041: LD_INT 5
14043: PPUSH
14044: LD_INT 2
14046: PPUSH
14047: CALL_OW 322
// end ; 3 :
14051: GO 14299
14053: LD_INT 3
14055: DOUBLE
14056: EQUAL
14057: IFTRUE 14061
14059: GO 14298
14061: POP
// begin SetTech ( 57 , 6 , state_Researched ) ;
14062: LD_INT 57
14064: PPUSH
14065: LD_INT 6
14067: PPUSH
14068: LD_INT 2
14070: PPUSH
14071: CALL_OW 322
// SetTech ( 58 , 6 , state_Researched ) ;
14075: LD_INT 58
14077: PPUSH
14078: LD_INT 6
14080: PPUSH
14081: LD_INT 2
14083: PPUSH
14084: CALL_OW 322
// SetTech ( 48 , 6 , state_Researched ) ;
14088: LD_INT 48
14090: PPUSH
14091: LD_INT 6
14093: PPUSH
14094: LD_INT 2
14096: PPUSH
14097: CALL_OW 322
// SetTech ( 49 , 6 , state_Researched ) ;
14101: LD_INT 49
14103: PPUSH
14104: LD_INT 6
14106: PPUSH
14107: LD_INT 2
14109: PPUSH
14110: CALL_OW 322
// SetTech ( 51 , 6 , state_Researched ) ;
14114: LD_INT 51
14116: PPUSH
14117: LD_INT 6
14119: PPUSH
14120: LD_INT 2
14122: PPUSH
14123: CALL_OW 322
// SetTech ( 52 , 6 , state_Researched ) ;
14127: LD_INT 52
14129: PPUSH
14130: LD_INT 6
14132: PPUSH
14133: LD_INT 2
14135: PPUSH
14136: CALL_OW 322
// SetTech ( 57 , 3 , state_Researched ) ;
14140: LD_INT 57
14142: PPUSH
14143: LD_INT 3
14145: PPUSH
14146: LD_INT 2
14148: PPUSH
14149: CALL_OW 322
// SetTech ( 58 , 3 , state_Researched ) ;
14153: LD_INT 58
14155: PPUSH
14156: LD_INT 3
14158: PPUSH
14159: LD_INT 2
14161: PPUSH
14162: CALL_OW 322
// SetTech ( 48 , 3 , state_Researched ) ;
14166: LD_INT 48
14168: PPUSH
14169: LD_INT 3
14171: PPUSH
14172: LD_INT 2
14174: PPUSH
14175: CALL_OW 322
// SetTech ( 49 , 3 , state_Researched ) ;
14179: LD_INT 49
14181: PPUSH
14182: LD_INT 3
14184: PPUSH
14185: LD_INT 2
14187: PPUSH
14188: CALL_OW 322
// SetTech ( 51 , 3 , state_Researched ) ;
14192: LD_INT 51
14194: PPUSH
14195: LD_INT 3
14197: PPUSH
14198: LD_INT 2
14200: PPUSH
14201: CALL_OW 322
// SetTech ( 52 , 3 , state_Researched ) ;
14205: LD_INT 52
14207: PPUSH
14208: LD_INT 3
14210: PPUSH
14211: LD_INT 2
14213: PPUSH
14214: CALL_OW 322
// SetTech ( 57 , 5 , state_Researched ) ;
14218: LD_INT 57
14220: PPUSH
14221: LD_INT 5
14223: PPUSH
14224: LD_INT 2
14226: PPUSH
14227: CALL_OW 322
// SetTech ( 58 , 5 , state_Researched ) ;
14231: LD_INT 58
14233: PPUSH
14234: LD_INT 5
14236: PPUSH
14237: LD_INT 2
14239: PPUSH
14240: CALL_OW 322
// SetTech ( 48 , 5 , state_Researched ) ;
14244: LD_INT 48
14246: PPUSH
14247: LD_INT 5
14249: PPUSH
14250: LD_INT 2
14252: PPUSH
14253: CALL_OW 322
// SetTech ( 49 , 5 , state_Researched ) ;
14257: LD_INT 49
14259: PPUSH
14260: LD_INT 5
14262: PPUSH
14263: LD_INT 2
14265: PPUSH
14266: CALL_OW 322
// SetTech ( 51 , 5 , state_Researched ) ;
14270: LD_INT 51
14272: PPUSH
14273: LD_INT 5
14275: PPUSH
14276: LD_INT 2
14278: PPUSH
14279: CALL_OW 322
// SetTech ( 52 , 5 , state_Researched ) ;
14283: LD_INT 52
14285: PPUSH
14286: LD_INT 5
14288: PPUSH
14289: LD_INT 2
14291: PPUSH
14292: CALL_OW 322
// end ; end ;
14296: GO 14299
14298: POP
// end ; end_of_file
14299: END
// every 0 0$01 trigger IsDead ( Nefarem ) do
14300: LD_EXP 7
14304: PPUSH
14305: CALL_OW 301
14309: IFFALSE 14321
14311: GO 14313
14313: DISABLE
// begin YouLost ( Nef ) ;
14314: LD_STRING Nef
14316: PPUSH
14317: CALL_OW 104
// end ;
14321: END
// every 0 0$01 trigger IsDead ( Mjr ) do
14322: LD_EXP 6
14326: PPUSH
14327: CALL_OW 301
14331: IFFALSE 14343
14333: GO 14335
14335: DISABLE
// begin YouLost ( Mjr ) ;
14336: LD_STRING Mjr
14338: PPUSH
14339: CALL_OW 104
// end ;
14343: END
// every 0 0$01 trigger IsDead ( depotAM ) do
14344: LD_INT 14
14346: PPUSH
14347: CALL_OW 301
14351: IFFALSE 14363
14353: GO 14355
14355: DISABLE
// begin YouLost ( baza ) ;
14356: LD_STRING baza
14358: PPUSH
14359: CALL_OW 104
// end ;
14363: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 4 then
14364: LD_VAR 0 1
14368: PUSH
14369: LD_INT 1
14371: EQUAL
14372: PUSH
14373: LD_VAR 0 2
14377: PUSH
14378: LD_INT 4
14380: EQUAL
14381: AND
14382: IFFALSE 14391
// begin YouLost ( soj ) ;
14384: LD_STRING soj
14386: PPUSH
14387: CALL_OW 104
// end ; end ; end_of_file
14391: PPOPN 2
14393: END
// export function medale ; begin
14394: LD_INT 0
14396: PPUSH
// if medal1 = true then
14397: LD_EXP 2
14401: PUSH
14402: LD_INT 1
14404: EQUAL
14405: IFFALSE 14419
// begin AddMedal ( med1 , 1 ) end else
14407: LD_STRING med1
14409: PPUSH
14410: LD_INT 1
14412: PPUSH
14413: CALL_OW 101
14417: GO 14430
// begin AddMedal ( med1 , - 1 ) ;
14419: LD_STRING med1
14421: PPUSH
14422: LD_INT 1
14424: NEG
14425: PPUSH
14426: CALL_OW 101
// end ; if FilterAllUnits ( [ [ f_side , 4 ] , [ f_btype , b_control_tower ] ] ) >= 1 and Researched ( 4 , tech_Opto1 ) then
14430: LD_INT 22
14432: PUSH
14433: LD_INT 4
14435: PUSH
14436: EMPTY
14437: LIST
14438: LIST
14439: PUSH
14440: LD_INT 30
14442: PUSH
14443: LD_INT 36
14445: PUSH
14446: EMPTY
14447: LIST
14448: LIST
14449: PUSH
14450: EMPTY
14451: LIST
14452: LIST
14453: PPUSH
14454: CALL_OW 69
14458: PUSH
14459: LD_INT 1
14461: GREATEREQUAL
14462: PUSH
14463: LD_INT 4
14465: PPUSH
14466: LD_INT 60
14468: PPUSH
14469: CALL_OW 325
14473: AND
14474: IFFALSE 14488
// begin AddMedal ( med2 , 1 ) ;
14476: LD_STRING med2
14478: PPUSH
14479: LD_INT 1
14481: PPUSH
14482: CALL_OW 101
// end else
14486: GO 14499
// begin AddMedal ( med2 , - 1 ) ;
14488: LD_STRING med2
14490: PPUSH
14491: LD_INT 1
14493: NEG
14494: PPUSH
14495: CALL_OW 101
// end ; if Escapers <= 13 then
14499: LD_EXP 14
14503: PUSH
14504: LD_INT 13
14506: LESSEQUAL
14507: IFFALSE 14531
// begin AddMedal ( med3 , 1 ) ;
14509: LD_STRING med3
14511: PPUSH
14512: LD_INT 1
14514: PPUSH
14515: CALL_OW 101
// SaveVariable ( 1 , medal_variable ) ;
14519: LD_INT 1
14521: PPUSH
14522: LD_STRING medal_variable
14524: PPUSH
14525: CALL_OW 39
// end else
14529: GO 14552
// begin AddMedal ( med3 , - 1 ) ;
14531: LD_STRING med3
14533: PPUSH
14534: LD_INT 1
14536: NEG
14537: PPUSH
14538: CALL_OW 101
// SaveVariable ( 2 , medal_variable ) ;
14542: LD_INT 2
14544: PPUSH
14545: LD_STRING medal_variable
14547: PPUSH
14548: CALL_OW 39
// end ; GiveMedals ( MAIN ) ;
14552: LD_STRING MAIN
14554: PPUSH
14555: CALL_OW 102
// end ; end_of_file
14559: LD_VAR 0 1
14563: RET
// export Escapers , Ucieczka ; every 0 0$1 trigger GetLives ( depotRU2 ) < 251 or IsDead ( depotRU2 ) do var Units , i ;
14564: LD_INT 280
14566: PPUSH
14567: CALL_OW 256
14571: PUSH
14572: LD_INT 251
14574: LESS
14575: PUSH
14576: LD_INT 280
14578: PPUSH
14579: CALL_OW 301
14583: OR
14584: IFFALSE 14686
14586: GO 14588
14588: DISABLE
14589: LD_INT 0
14591: PPUSH
14592: PPUSH
// begin Ucieczka = true ;
14593: LD_ADDR_EXP 15
14597: PUSH
14598: LD_INT 1
14600: ST_TO_ADDR
// Units = FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
14601: LD_ADDR_VAR 0 1
14605: PUSH
14606: LD_INT 22
14608: PUSH
14609: LD_INT 6
14611: PUSH
14612: EMPTY
14613: LIST
14614: LIST
14615: PUSH
14616: LD_INT 21
14618: PUSH
14619: LD_INT 1
14621: PUSH
14622: EMPTY
14623: LIST
14624: LIST
14625: PUSH
14626: EMPTY
14627: LIST
14628: LIST
14629: PPUSH
14630: CALL_OW 69
14634: ST_TO_ADDR
// Say ( Units [ 1 ] , X1 ) ;
14635: LD_VAR 0 1
14639: PUSH
14640: LD_INT 1
14642: ARRAY
14643: PPUSH
14644: LD_STRING X1
14646: PPUSH
14647: CALL_OW 88
// ComExitBuilding ( Units ) ;
14651: LD_VAR 0 1
14655: PPUSH
14656: CALL_OW 122
// Wait ( 0 0$1 ) ;
14660: LD_INT 35
14662: PPUSH
14663: CALL_OW 67
// wait ( 0 0$01 ) ;
14667: LD_INT 35
14669: PPUSH
14670: CALL_OW 67
// ComMoveToArea ( Units , EscapeRoute ) ;
14674: LD_VAR 0 1
14678: PPUSH
14679: LD_INT 15
14681: PPUSH
14682: CALL_OW 113
// end ;
14686: PPOPN 2
14688: END
// every 0 0$1 trigger GetLives ( depotRU1 ) < 251 or IsDead ( depotRU1 ) do var BuildingList , Units , i ;
14689: LD_INT 194
14691: PPUSH
14692: CALL_OW 256
14696: PUSH
14697: LD_INT 251
14699: LESS
14700: PUSH
14701: LD_INT 194
14703: PPUSH
14704: CALL_OW 301
14708: OR
14709: IFFALSE 14805
14711: GO 14713
14713: DISABLE
14714: LD_INT 0
14716: PPUSH
14717: PPUSH
14718: PPUSH
// begin Ucieczka = true ;
14719: LD_ADDR_EXP 15
14723: PUSH
14724: LD_INT 1
14726: ST_TO_ADDR
// Units = FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) ;
14727: LD_ADDR_VAR 0 2
14731: PUSH
14732: LD_INT 22
14734: PUSH
14735: LD_INT 3
14737: PUSH
14738: EMPTY
14739: LIST
14740: LIST
14741: PUSH
14742: LD_INT 21
14744: PUSH
14745: LD_INT 1
14747: PUSH
14748: EMPTY
14749: LIST
14750: LIST
14751: PUSH
14752: EMPTY
14753: LIST
14754: LIST
14755: PPUSH
14756: CALL_OW 69
14760: ST_TO_ADDR
// Say ( Units [ 1 ] , X1 ) ;
14761: LD_VAR 0 2
14765: PUSH
14766: LD_INT 1
14768: ARRAY
14769: PPUSH
14770: LD_STRING X1
14772: PPUSH
14773: CALL_OW 88
// ComExitBuilding ( Units ) ;
14777: LD_VAR 0 2
14781: PPUSH
14782: CALL_OW 122
// wait ( 0 0$01 ) ;
14786: LD_INT 35
14788: PPUSH
14789: CALL_OW 67
// ComMoveToArea ( Units , EscapeRoute ) ;
14793: LD_VAR 0 2
14797: PPUSH
14798: LD_INT 15
14800: PPUSH
14801: CALL_OW 113
// end ;
14805: PPOPN 3
14807: END
// every 0 0$0.5 do var Units1 , Units2 , i ;
14808: GO 14810
14810: DISABLE
14811: LD_INT 0
14813: PPUSH
14814: PPUSH
14815: PPUSH
// begin enable ;
14816: ENABLE
// Units1 = FilterUnitsInArea ( EscapeRoute , [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) ;
14817: LD_ADDR_VAR 0 1
14821: PUSH
14822: LD_INT 15
14824: PPUSH
14825: LD_INT 22
14827: PUSH
14828: LD_INT 3
14830: PUSH
14831: EMPTY
14832: LIST
14833: LIST
14834: PUSH
14835: LD_INT 21
14837: PUSH
14838: LD_INT 1
14840: PUSH
14841: EMPTY
14842: LIST
14843: LIST
14844: PUSH
14845: EMPTY
14846: LIST
14847: LIST
14848: PPUSH
14849: CALL_OW 70
14853: ST_TO_ADDR
// Units2 = FilterUnitsInArea ( EscapeRoute , [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) ;
14854: LD_ADDR_VAR 0 2
14858: PUSH
14859: LD_INT 15
14861: PPUSH
14862: LD_INT 22
14864: PUSH
14865: LD_INT 6
14867: PUSH
14868: EMPTY
14869: LIST
14870: LIST
14871: PUSH
14872: LD_INT 21
14874: PUSH
14875: LD_INT 1
14877: PUSH
14878: EMPTY
14879: LIST
14880: LIST
14881: PUSH
14882: EMPTY
14883: LIST
14884: LIST
14885: PPUSH
14886: CALL_OW 70
14890: ST_TO_ADDR
// if Units1 > 0 or Units2 > 0 then
14891: LD_VAR 0 1
14895: PUSH
14896: LD_INT 0
14898: GREATER
14899: PUSH
14900: LD_VAR 0 2
14904: PUSH
14905: LD_INT 0
14907: GREATER
14908: OR
14909: IFFALSE 14991
// begin for i in Units1 do
14911: LD_ADDR_VAR 0 3
14915: PUSH
14916: LD_VAR 0 1
14920: PUSH
14921: FOR_IN
14922: IFFALSE 14949
// begin RemoveUnit ( i ) ;
14924: LD_VAR 0 3
14928: PPUSH
14929: CALL_OW 64
// Escapers = Escapers + 1 ;
14933: LD_ADDR_EXP 14
14937: PUSH
14938: LD_EXP 14
14942: PUSH
14943: LD_INT 1
14945: PLUS
14946: ST_TO_ADDR
// end ;
14947: GO 14921
14949: POP
14950: POP
// for i in Units2 do
14951: LD_ADDR_VAR 0 3
14955: PUSH
14956: LD_VAR 0 2
14960: PUSH
14961: FOR_IN
14962: IFFALSE 14989
// begin RemoveUnit ( i ) ;
14964: LD_VAR 0 3
14968: PPUSH
14969: CALL_OW 64
// Escapers = Escapers + 1 ;
14973: LD_ADDR_EXP 14
14977: PUSH
14978: LD_EXP 14
14982: PUSH
14983: LD_INT 1
14985: PLUS
14986: ST_TO_ADDR
// end ;
14987: GO 14961
14989: POP
14990: POP
// end ; end ;
14991: PPOPN 3
14993: END
